typedef和#define的区别

1.    执行时间不同。 typedef在编译阶段进行处理,支持类型检查和调试,#define在预处理阶段,只是进行简单的宏替换。

2.    功能不同。 typedef为其他已存在的类型起别名,屏蔽不同平台的差异,经常与struct结合使用。而#define只是进行宏定义,他不只可以为类型起别名,还可以进行常量,变量和编译器的定义。

3.    作用域不同。 #define只要提前进行宏定义,就可以在接下来的程序使用。而typedef是有自己的作用域的限制。

4.    对指针的修饰效果不同。

typedef和#define的区别
typedef和#define的区别