#include <stdio.h> #define CHAR2 char* int main() { typedef char* CHAR; CHAR a,b; CHAR2 c,d; printf("%d,%d,%d,%d
",sizeof a,sizeof b,sizeof c,sizeof d); return 0; }
答案是:4,4,4,1
因为用define定义的别名只是简单的替换,如果是像上面那样的字符指针类型,用来声明变量,就相当于
char* c;
char d;
从颜色上也可以看出来,用typedef声明的新类型CHAR已经变为蓝色。
|