鹰之歌

既然你崇拜鹰,就要像鹰一样翱翔天际,俯瞰大地。哪怕会摔的粉身碎骨。

导航

typedef与#define的区别

1.可以用其他类型说明符对宏类型进行扩展,但对typedef所定义的类型名却不能这样做。如下所示:

  

#define peach int
unsigned peach i;
/*没问题*/
typedef
int banana;
unsigned banana i;
/*错误,非法!*/

2.在连续几个变量的声明中,用typedef定义的类型能够保证声明中的所有变量均为同一种类型,而用#define定义的类型则无法保证,如下所示:

#define int_ptr int *;
int_ptr chalk,cheese;

经过宏扩展,第二行变为:

int * chalk,cheese;

这使得chalk和cheese成为不同的类型。

相反,下面的代码:

typedef char * char_ptr;
char_ptr Bentley,Rolls_Royce;
则能保证Bentley,Rolls_Royce类型相同,都是指向char的指针。

posted on 2011-05-25 17:29  鹰之歌  阅读(123)  评论(0编辑  收藏  举报