C11标准在section 6.7/5中进行了规定:
C11 6.7 / 5
标识符的定义是该标识符的声明
(...)
-对于枚举常量,是(唯一)声明的 标识符;
(...)
以上段落的用语是否表明
枚举常量的定义是一个(唯一的)声明
(唯一)声明是枚举常量的定义吗?
答案 0 :(得分:1)
这意味着声明枚举常量也将对其进行定义。
因此,枚举常量在翻译单元内的作用域中不能出现多次。例如,下面的代码无效,因为它重新声明了枚举常量:
enum a {
AAA,
BBB
};
enum b {
BBB, // error, redeclaration
CCC
};