专栏首页给永远比拿愉快C++结构体前面为什么会经常使用typedef

C++结构体前面为什么会经常使用typedef

C++代码中定义几个结构体,我们可能会看到这样的代码:

typedef struct student
{
	string name;
	int age;
	string gender;
}student;

为什么struct关键字后面有结构体名称student了,还需要用typedef再重新给定一个名字呢?

这是因为如果不使用typedef,即

struct student
{
	string name;
	int age;
	string gender;
};

在C语言中使用的时候,必须这样定义一个变量:

struct student stu1 = {"TheOne", 24, "male"};

所以在C语言中会使用typedef将struct student定义为student,这样我们使用student结构体的时候可以省略struct,即:

student stu1 = {"TheOne", 24, "male"};

但是在C++中,一切都变得简单了,我们不需要使用typedef,也可以直接使用student定义变量。即:

结构体:

struct student
{
	string name;
	int age;
	string gender;
};

变量定义:

student stu1 = {"TheOne", 24, "male"};

所以说C++中看到的typedef只是为了兼容C的写法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Dijkstra算法及其C++实现

    如果从图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小。

    卡尔曼和玻尔兹曼谁曼
  • 归并排序

    归并排序采用分而治之(divide and conquer)的思想,通过将已经排好序的子序列合并,得到最终完全有序的序列。所以归并算法包括两大步骤:第一步是“分...

    卡尔曼和玻尔兹曼谁曼
  • 小波变换二之Haar变换

    这是小波变换的第二篇,我们继续谈Haar变换。在第一篇中,我们介绍了一位情况下的Haar变换,这篇博文中主要介绍二维Haar变换。最后,通过一个图像压缩的案例说...

    卡尔曼和玻尔兹曼谁曼
  • python实现学生成绩测评系统

    本文实例为大家分享了python实现学生成绩测评系统的具体代码,供大家参考,具体内容如下

    砸漏
  • Python面向对象编程

    张俊红
  • SQL server 数据库基本插入、删除命令

    L宝宝聊IT
  • Python+Django+MySQL实现基于Web版的增删改查的示例代码

    本篇使用Python Web框架Django连接和操作MySQL数据库学生信息管理系统(SMS),主要包含对学生信息增删改查功能,旨在快速入门Python We...

    砸漏
  • 第一期 | 群问题整理

    问: 请教个问题:a.txt中有1到10,10个乱序数字,数字之间用”,”分割,写一个程序,将文件内容降序排列,数字之间用”,”分割

    微笑的小小刀
  • 经典面试题-简述HttpSession 的作用、使用方法,可用代码说明

    HttpSession 中可以跟踪并储存用户信息,把值设置到属性中,有2 个方法:setAttribute(),getAttrribute();

    cwl_java
  • 【Java框架型项目从入门到装逼】第十五节 - jdbc模糊查询实现(附带详细调试过程)

    剽悍一小兔

扫码关注云+社区

领取腾讯云代金券