2014-09-22 17 views
1

我有以下代碼:2008在C/C++中聲明typedef枚舉數組組合的正確方法是什麼?

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

VS給我的錯誤

C2513: 'MyEnum []':沒有變量聲明之前 '='

是什麼從typedef enum直接聲明數組的正確方法?

+3

這是不可能在一個聲明。你可以定義一個類型或聲明一個變量,而不是兩個。這裏給出的聲明應該如何解釋?在同一範圍和名稱空間中不能有兩個相同的標識符。 – mafso 2014-09-22 10:11:15

回答

11

在C++中,只是刪除typedef,它會正常工作。

在C中,刪除typedef是足夠的。
但是如果你想要方便地使用的MyEnum代替enum MyEnum別處然後就發生了變化:

typedef enum { 
... 
} MyEnum; 

MyEnum MyEnumArray[] = ...; 
+1

您的意思是:'MyEnum MyEnumArray [] = ...;'' – 2014-09-22 10:41:28

6

刪除typedef聲明:

enum MyEnum{ 
A = 0, 
B, 
C, 
D 
} MyEnumArray[] = {A, B, C, D}; 
相關問題