宏定义和typedef区别
宏主要用于定义常量及书写复杂的内容;typedef主要用于定义类型别名。
宏替换发生在编译阶段之前,属于文本插入替换;typedef是编译的一部分。
宏不检查类型;typedef会检查数据类型。
宏不是语句,不在在最后加分号;typedef是语句,要加分号标识结束。
注意对指针的操作,typedef char * p_char和#define p_char char *区别巨大。
一个经典例子:
1
2
INT a,b;这里a的类型是int*,而b的类型是int。
1
2typedef int * INT
INT a,b;这里的a,b都是int *类型。