define和typedef 区别

来源:互联网 发布:源码客栈 编辑:程序博客网 时间:2024/05/18 03:55
#define 是宏命令,在编译前,由预处理器做替代,如同文本编辑的替代命令,把程序中的所有遇到的词,全部替代。#define PINT int* 就是把所有的词 PINT 替换成 int * ,替换完毕再编译。 typedef int* pint; 是语句,由编译器在编译过程中编译处理。int* x; 和pint x; 的声明是等价的typedef int* pint;long int* x; 声明是可以的,但long pint x; 不可以。#define PINT int* long int* x; 声明是可以的,long PINT x; 也是可以的。从上两种情况对比,你就知道两者的区别long,short,signed,unsigned 叫 “Modifiers”const,volatile 叫 “Qualifiers"const pint p; 锁定 pint 类型,锁定初始化后的指针地址。const PINT p; 预处理为const int * p;  锁定初始化后的指针指向的值。
0 0
原创粉丝点击