/* 摘自《c专家编程》 */
/*
Cutail
2014,12,30
*/
1 typedef是一种彻底的封装类型,定义之后不能向其中增加别的东西。 #define可以用其它的类型修饰符对宏进行扩展。
例如:
#define test int
unsigned test a; // this is OK
typedef int newtype;
unsigned newtype b; // error!
2 在连续的几个变量声明时,typedef可以保证所有变量都是同一种类型,而#define不能够保证。
例如:
#define int_ptr int *
int_ptr a, b ;
经过宏扩展后上面变为 int * a, b; 因此a和b具有不同的类型。
typedef char * char_ptr;
char_ptr c, d;
c和d具有相同的类型。