使用数组常量定义的枚举

时间:2016-10-28 18:34:36

标签: c arrays enums constants

是否可以使用数组定义枚举常量?像这样:

enum myEnum
{
    abc = {12, 34, 56};
    def = {-12, -13, -14};
};

2 个答案:

答案 0 :(得分:3)

这是不可能的。枚举常量必须是整数类型。

来自C standard的第6.7.2.2节:

  

2 定义枚举常量的值的表达式应为具有值的整数常量表达式   可表示为int

     

3 枚举器列表中的标识符被声明为类型为int 的常量,并且可能出现在任何位置   允许的。具有=的枚举器定义其枚举   常量作为常量表达式的值。如果是第一个   枚举器没有=,其枚举常量的值为0.每个   没有=的后续枚举器定义其枚举常量   作为通过加1获得的常量表达式的值   到前一个枚举常量的值。 (指某东西的用途   具有=的枚举器可以生成具有值的枚举常量   在同一枚举中复制其他值。)。的枚举数   枚举也称为其成员。

答案 1 :(得分:0)

没有

  

枚举包含一组命名的整数常量值。

(C2011,6.2.5 / 16)

枚举常量的值是实现选择的整数类型。它们不能具有实际类型,指针类型或聚合类型(包括数组类型)。为枚举常量声明的(可选)值必须是整数。