【发布时间】:2014-11-12 07:01:32
【问题描述】:
C 预处理器如何处理多个宏?我在这里和谷歌也搜索过,但无法理解应该遵循的确切规则。以下代码:
#define ABC xYz
#define xYz ABC
int main()
{
int ABC;
int xYz;
}
在 gcc 上,像这样生成 preprocessor.i:
# 1 "preprocessor.c"
# 1 "<command-line>"
# 1 "preprocessor.c"
int main()
{
int ABC;
int xYz;
}
这里似乎什么都没有被替换。和其他代码:
#define ABC kkk
#define xYz ABC
int main()
{
int ABC;
int xYz;
}
生成如下输出:
# 1 "preprocessor.c"
# 1 "<command-line>"
# 1 "preprocessor.c"
int main()
{
int kkk;
int kkk;
}
那么这一切是如何发生的。
【问题讨论】:
标签: c gcc c-preprocessor