谁能解释一下
#define int* char
和
typedef int* char;
最佳答案
没有区别,因为两者都是非法的。
int*
不是宏的有效标识符,即使您放入空格,int
也不是,因为它是一个关键字并且是保留的。即使您将它切换为您可能想要的 #define char int*
,它也会因为同样的原因而失败。
而且您不能重新定义类型 char
,所以 typedef
是一个半身像。
不同之处在于,如果您给出的示例是合法的,那么 #define
是一个预处理指令。它只在编译阶段之前进行文本替换。相反,typedef
定义了一个新类型,并且该新类型标识符像任何其他类型一样遵守“规则”。
关于c - 类型定义,#define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3316474/