枚举常量声明与定义-C标准

时间:2018-08-29 17:50:28

标签: c language-lawyer declaration definition c11

C11标准在section 6.7/5中进行了规定:

  

C11 6.7 / 5

     

标识符的定义是该标识符的声明   

     

(...)

     

-对于枚举常量,是(唯一)声明的   标识符;

     

(...)

以上段落的用语是否表明

  1. 枚举常量的定义是一个(唯一的)声明

  2. (唯一)声明是枚举常量的定义吗?

1 个答案:

答案 0 :(得分:1)

这意味着声明枚举常量也将对其进行定义。

因此,枚举常量在翻译单元内的作用域中不能出现多次。例如,下面的代码无效,因为它重新声明了枚举常量:

enum a {
    AAA,
    BBB
};

enum b {
    BBB,   // error, redeclaration
    CCC
};