1. 执行时间不同。 typedef在编译阶段进行处理,支持类型检查和调试,#define在预处理阶段,只是进行简单的宏替换。
2. 功能不同。 typedef为其他已存在的类型起别名,屏蔽不同平台的差异,经常与struct结合使用。而#define只是进行宏定义,他不只可以为类型起别名,还可以进行常量,变量和编译器的定义。
3. 作用域不同。 #define只要提前进行宏定义,就可以在接下来的程序使用。而typedef是有自己的作用域的限制。
4. 对指针的修饰效果不同。
1. 执行时间不同。 typedef在编译阶段进行处理,支持类型检查和调试,#define在预处理阶段,只是进行简单的宏替换。
2. 功能不同。 typedef为其他已存在的类型起别名,屏蔽不同平台的差异,经常与struct结合使用。而#define只是进行宏定义,他不只可以为类型起别名,还可以进行常量,变量和编译器的定义。
3. 作用域不同。 #define只要提前进行宏定义,就可以在接下来的程序使用。而typedef是有自己的作用域的限制。
4. 对指针的修饰效果不同。
相关文章: