查看typedef替换

时间:2011-09-22 09:01:11

标签: c typedef

任何人都可以告诉我,我怎样才能看到typedef替换字符串。 实际上我们可以使用cc -E filename.c看到预处理器替换。所以我希望看到typedef替换。

2 个答案:

答案 0 :(得分:2)

这(以及-E)取决于您使用的编译器。

那就是说,我怀疑任何编译器都可以这样做。与宏相反,typedef不仅仅是文本替换。

请注意,潜在的typedef扩展程序的输出不一定是有效的C代码,例如:实例相同的结构将变得不兼容。

答案 1 :(得分:1)

typedef不是宏。

-E是编译中的预处理器阶段,您将只能看到MACRO替换。

#define A int *
typedef int *B;

现在这意味着'A'出现的地方,它将被'int *'替换 - 普通字符串替换
然而,B是'int *'

的同义词

所以当我输入:

A c, d;
B e, f;

-E阶段将向您显示已进行以下替换:

int *c, d;
B e, f;

所以:

c的类型为'int *'
d的类型为'int' e是B类(与e的类型为'int *'同义)
f是B类型(与f的类型为'int *'同义)

HTH