define与typedef的区别
2013-09-24 16:39 Keiven_LY 阅读(292) 评论(0) 编辑 收藏 举报例:
#define PI 3.14
typedef int* int_p;
从上面的两条语句可以看出:
1、#define是预处理命令,在编译预处理时进行单纯的替换工作,不做正确性检查,而typedef是在编译时处理的,可理解为“为某个类型寻找另一种书写方式”
即typedef int* int_p;该语句为int*引入了一个新的助记符int_p,可以在程序中用int_p声明指向int型的指针变量
如typedef int* int_p;
int_p pA,pB;
上述两条语句声明了两个指向int型的指针变量pA和pB
2、#define不是语句,后面不加分号,而typedef需加分号
3、typedef后面是条完整的语句,如语句typedef int* int_p;去掉typedef后,变为int* int_p;就是完整的语句,它声明了int型的指针变量int_p,加上typedef后,int_p相当于int*的别名(或是助记符)