总结
#define pchar char *
#typedef char * ppchar;
...
pchar p1, p2;
ppchar p3, p4;
...
预编译后的结果:展开成这个样子
char * p1, p2;
ppchar p3, p4;
定义了char类型指针p1,和一个char类型变量p2,因此sizeof(p2) = 1;
define所作的操作就是替换,傻瓜表达式;因此,用typedef对类型进行重命名,则可以有效避免这样的结果。
总结
#define pchar char *
#typedef char * ppchar;
...
pchar p1, p2;
ppchar p3, p4;
...
预编译后的结果:展开成这个样子
char * p1, p2;
ppchar p3, p4;
定义了char类型指针p1,和一个char类型变量p2,因此sizeof(p2) = 1;
define所作的操作就是替换,傻瓜表达式;因此,用typedef对类型进行重命名,则可以有效避免这样的结果。