枚举常量声明与定义-C标准
C11标准规定了: C116.7/5 标识符的定义是该标识符的声明 即: (……) -对于枚举常量,是 标识符 (……) 上述段落的措辞是否表明枚举常量声明与定义-C标准,c,language-lawyer,declaration,definition,c11,C,Language Lawyer,Declaration,Definition,C11,C11标准规定了: C116.7/5 标识符的定义是该标识符的声明 即: (……) -对于枚举常量,是 标识符 (……) 上述段落的措辞是否表明 枚举常量的定义是(唯一)声明 枚举常量的定义是(唯一)声明吗 这意味着声明枚举常量也会定义它 因此,枚举常量在转换单元内的作用域中不能出现多次。例如,以下代码无效,因为它重新声明了枚举常量: enum a { AAA, BBB }; enum b { BBB, // error, redeclaration CCC
这意味着声明枚举常量也会定义它 因此,枚举常量在转换单元内的作用域中不能出现多次。例如,以下代码无效,因为它重新声明了枚举常量:
enum a {
AAA,
BBB
};
enum b {
BBB, // error, redeclaration
CCC
};
这意味着您不能在不定义枚举常量的情况下声明它。这还意味着您不能向前声明枚举常量。但是,作用域仍然适用,因此您可以有:
enum{NAME1,NAME2};void函数(void){enum{NAME1=37,NAME2=-57};..}
,所以它是2。?因为1。没有任何意义,夸张的说法是正确的。因为只能有一个声明(这也是定义),所以谈论多个声明是没有意义的。