C/C++中的typedef 和 #define
typedef
C/C++中的关键字typedef允许用户为类型名来起一个新名字,通常会是缩写或者能够清晰表明类型含义的新名字。
例:
typedef unsigned int UINT;
UINT 100;
值得注意的是,typedef除了为C/C++内置的数据类型取别名之外,也可以为用户的自定义类型(class / struct)取别名。
例:
typedef Student{string name;int id;...
}STU;STU student;
缩写例:
typedef iterator_traits<I>::iterator_category caty;
#define
#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:
-
typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名。
常见的有:
#define PI 3.14
-
typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
Ref:https://www.runoob.com/cprogramming/c-typedef.html