例题: #define ABC char * typedef char *abc;
ABC a1, b1, c1; abc a2, b2, c2;
问,上述6个变量分别是什么类型? ABC a1, b1, c1; <=> char *a1, b1, c1; 也就是说,a1是char*类型,b1和c1都是char类型! abc a2, b2, c2; 这三个变量,都是char *类型!!!
(1)#define,因为#是预编译操作,即,是在编译工作执行之前进行的,根本谈不上计算!仅仅是“替换”! typedef,是在编译时处理的,并不是作简单的字符串处理,而是采用如同定义变量的方法那样来声明一个类型,然后用它来定义变量。 (2)逗号的区别,见上。 |