typedef与define
0赞
发表于 8/30/2015 11:29:07 AM
阅读(1875)
#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; 锁定初始化后的指针指向的值。
