2016-10-28 44 views
1

是否可以使用數組定義枚舉常量?像這樣:使用數組常量定義的枚舉

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

[Ideone says no](http://ideone.com/nBaIDD) –

+0

這甚至意味着什麼?如果你告訴我們你想要做什麼,我們可能會告訴你如何去做(使用除enum之外的東西)。 –

+0

我需要一種存儲恆定信息的「元組」並且能夠比較它的方法。在這種情況下,我使用數據類型及其大小。示例: long TYPE_NUMERIC_UNSIGNED_LONG_INT [] = {50,0,4294967295,1}; – ColonelHedgehog

回答

3

這是不可能的。枚舉常量必須是整數類型。

C standard的節6.7.2.2:

定義枚舉常數的值應是整數常量表達式具有可表示爲int

值 表達

枚舉器列表中的標識符被聲明爲常量,其類型爲int,並且可能出現 允許的任何位置。具有=的枚舉器將其枚舉 定義爲常量表達式的值。如果第一 枚舉沒有=,其枚舉常數的值是0,沒有=每個 後續枚舉定義其枚舉常數 所獲得的常量表達式的值加1 到先前枚舉常數的值。 (使用 具有=的枚舉數可能會生成枚舉常量,其值爲 在同一個枚舉中重複其他值。枚舉的枚舉數也稱爲其成員。

0

一種枚舉包括一組命名爲整數常量的值。

(C2011,6.2.5/16)

枚舉常數的值是由實現選擇的整數型的。它們不能有實際的類型,指針類型或聚合類型(包括數組類型)。爲枚舉常量聲明的(可選)值必須是整數。