可以看一下如下的例子
#define peach int
unsigned peach i; /*这样是没问题的*/
typedef int banana;
unsigned banana i; /* 错误!非法*/
在连续几个变量的声明中,用typedef定义的类型能够保证声明中所有的变量均为同一种类型,而#define则不然,在如下这种情况下:
#deinfe int_ptr, int *;
int_ptr chalk, cheese;
经过宏扩展,第二行变为:
int *chalk, cheese;
这样一来,chalk 与 cheese 就不是同一类型了,事与愿违
————————————————————————————————————————————————
而用 typedef 则就可以,如下:
typedef char * char_ptr;
char_ptr Bentley, Rolls_Royce;
这时 Bentley 与 Rolls_Royce类型是完全一样的