快捷搜索: 王者荣耀 脱发

C++ typedef 以及 typedef struct 用法

1 概述

typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。

typedef 本身是一种存储类的关键字,与 auto、extern、static、register 等关键字不能出现在同一个表达式中。

2 typedef作用及用法

使用 typedef 定义新类型的方法(步骤):在传统的变量声明表达式里,用(新的)类型名替换变量名,然后把关键字 typedef 加在该语句的开头就可以了. 示例1:

【第一步】:int a; ———— 传统变量声明表达式 【第二步】:int myint_t; ———— 使用新的类型名myint_t替换变量名a 【第三步】:typedef int myint_t; ———— 在语句开头加上typedef关键字,myint_t就是我们定义的新类型.

3 区别 #define

#define 进行简单的进行字符串替换。 typedef 是进行为一个类型起新名字。

4 typedef struct在c/c++中的区别

4.1区别一

在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1; 如果没有typedef就必须用struct Student stu1;来声明 这里的Stu实际上就是struct Student的别名。 另外这里也可以不写Student(于是也不能struct Student stu1;了) typedef struct { int a; }Stu; 但在c++里很简单,直接 struct Student { int a; };

于是就定义了结构体类型Student,声明变量时直接Student stu2;

4.2区别二

简而言之: 不用typedef 定义结构体,后跟的是结构体变量(类的对象)。 用typedef定义结构体,后跟的是结构体的别名(相当于类的另一个名字)。 在c++中如果用typedef的话,又会造成区别: struct Student { int a; }stu1;//stu1是一个变量 typedef struct Student2 { int a; }stu2;//stu2是一个结构体类型 使用时可以直接访问stu1.a 但是stu2则必须先 stu2 s2; 然后 s2.a=10;

5 参考资料

经验分享 程序员 微信小程序 职场和发展