#define mychar1 char *
typedef char * mychar2;
mychar1 a="aaa",b="bbb";
mychar2 c="ccc",d="ddd";
printf("%s\n",a);
printf("%s\n",b);
printf("%s\n",c);
printf("%s\n",d);
这个打印b的时候会报错,老师讲过类似这个例子
宏定义只是简单代换, mychar1 a="aaa",b="bbb";替换之后是 char *a="aaa";b="bbb";
等价于 char *a="aaa"; char b="bbb";
而typedef确实是用一个类型声明了两个变量
mychar2 c="ccc",d="ddd"; 这个能正确等价为 char *c="ccc"; char *d="ddd"; |