【发布时间】:2020-10-05 12:14:36
【问题描述】:
如果我们谈论宏而不是编译器在预处理阶段处理它们,那么枚举器呢?编译器如何看待它们。例如看下面的代码:
#include <stdio.h>
enum day {sunday = 1, monday, tuesday = 5,
wednesday, thursday = 10, friday, saturday};
int main()
{
printf("%d %d %d %d %d %d %d", sunday, monday, tuesday,
wednesday, thursday, friday, saturday);
return 0;
}
在这个特定的示例中,我什至没有为枚举数据类型创建任何变量。我只是在我的printf() 语句中使用enumeration-constants。枚举器内部的工作方式与宏类似吗?在预处理过程中,所有这些符号常量会被整数常量替换吗?编译器究竟是如何处理它们的?
【问题讨论】:
-
仅供参考:
enum相关内容不会被预处理器以任何方式更改(除非您使用常规宏)
标签: c enums macros constants enumeration