2016-10-28 20 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

これはできません。 enum定数は整数型でなければなりません。 C standardのセクション6.7.2.2から

int

として表現値を持つ整数定数式でなければならない 定数列挙の値を定義する式

列挙子リストの識別子は、タイプがの定数として宣言されていますとなり、 が許可されている場合はどこにでも表示されます。 =の列挙子は定数式の値として定数 を列挙します。最初 列挙無=を持っていない場合、その列挙定数の値が0でない=有する各 後続の列挙は、前の列挙定数の値に1 を加えた定数式の値として その列挙は定数定義します。 (の 列挙子を使用すると、同じ列挙の中で の重複する他の値を持つ列挙定数が生成されることがあります。列挙子 の列挙子は、そのメンバとも呼ばれます。

0

列挙は、名前付き整数定数値のセットを含みます。

(C2011、6.2.5/16)

列挙定数の値は、実装によって選択された整数型です。実数型、ポインタ型、集約型(配列型を含む)はありません。列挙定数に対して宣言された(オプションの)値は整数でなければなりません。

関連する問題