在C / C ++中声明typedef枚举数组的正确方法是什么?

时间:2014-09-22 10:06:09

标签: c++ c arrays enums typedef

我有以下代码:

typedef enum MyEnum{
A = 0,
B,
C,
D
} MyEnumArray[] = {A, B, C, D};

VS 2008给了我错误

  

C2513:' MyEnum []' :没有在' ='

之前声明的变量

直接从typedef enum声明数组的正确方法是什么?

2 个答案:

答案 0 :(得分:11)

在C ++中,只需删除typedef,它就能正常工作。

在C中,删除typedef也足够了 但是,如果您想方便地使用MyEnum代替其他地方的enum MyEnum ,请稍后更改一下:

typedef enum {
...
} MyEnum;

MyEnum MyEnumArray[] = ...;

答案 1 :(得分:6)

删除typedef声明:

enum MyEnum{
A = 0,
B,
C,
D
} MyEnumArray[] = {A, B, C, D};