摘要:typedef和define可对一个对象进行 取别名(typedef) 或 字符替换(define)
typedef
是关键字,对已经存在的数据类型取别名。
在编译阶段处理,会进行类型检查,只能在定义的作用域内使用。
typedef的作用是类型重定义
在原定义变量前加上typedef,原变量就变成了新的类型
例如:typedef int int32_t;
//int32_t就是使用typedef重新定义的类型,在使用int32_t时候就相当于在使用int
结构体和typedef结合
使用typedef对结构体类型进行类型重定义。
先用结构体类型定义变量,在前面加上typedef后原来的变量就变成了新的类型名了
typedef struct person{
char name[20];
int age;
}person_t;
person_t p1;
define
是预处理指令(宏定义),只进行简单的字符替换,是否产生错误要在编译时才可知。
没有作用域限制,可以对类型/变量/常量等进行替换
define只是简单的字符串替换
#define N 5 //N是标识常量