一、typedef与宏的不同

  主要体现在两方面:

  首先,可以用其他类型说明符对宏类型名进行扩展,但对typedef所定义的类型名却不能这样做

#define peach int
unsigned peach i; //No problem

typedef int banana;
unsigned banana i;//error illegal

  其次,在连续几个变量的声明中,用typedef定义的类型能够保证声明中所有的变量均为同一类型,而用#define 定义的类型则无法保证。

#define int_ptr int*
int_ptr chalk, cheese;

备注:chalk 是int*型,cheese是int型