C typedef和define之间的区别
可能重复:C typedef和define之间的区别,c,C,可能重复: 以下各项之间是否有任何区别: #define NUM int ... NUM x; x = 5; printf("X: %d\n", x); 这是: typedef int NUM; ... NUM x; x = 5; printf("X : %d\n", x); 这两个测试编译和运行都没有问题。那么,它们是等价的吗 谢谢 要创建指针类型的别名时会有所不同 typedef int *t1; #define t2 int * t1 a, b; /* a is 'int
以下各项之间是否有任何区别:
#define NUM int
...
NUM x;
x = 5;
printf("X: %d\n", x);
这是:
typedef int NUM;
...
NUM x;
x = 5;
printf("X : %d\n", x);
这两个测试编译和运行都没有问题。那么,它们是等价的吗
谢谢 要创建指针类型的别名时会有所不同
typedef int *t1;
#define t2 int *
t1 a, b; /* a is 'int*' and b is 'int*' */
t2 c, d; /* c is 'int*' and d is 'int' */
此外,typedef
遵守范围规则,即您可以声明块的本地类型
另一方面,当您想在预处理器指令中管理您的类型时,可以使用#define