enum 属性
キーワード (keyword)列挙型は、列挙型を識別します。
enum [tag ]
{
identifier [=integer-value ]
[ , ... ]
}
-
tag
-
列挙型の省略可能なタグを指定します。
-
identifier
-
特定の列挙を指定します。
-
integer-value
-
定数整数値を指定します。
列挙型 は、 typedef 宣言、一般宣言、関数宣言子 (関数戻り値型またはパラメーター型指定子) で型指定子として使用できます。 型指定子が表示されるコンテキストについては、「 インターフェイス定義 (IDL) ファイル」を参照してください。
MIDL コンパイラの既定のモードでは、列挙子に整数値を割り当てることができます。 (この機能は、 /osf スイッチを使用してコンパイルする場合は使用できません)。C 言語の列挙子と同様に、列挙子名は一意である必要がありますが、列挙子の値はである必要はありません。
代入演算子が指定されていない場合、識別子は、0 から始まる左から右への連続する整数にマップされます。 代入演算子を指定すると、割り当てられた値は、最後に割り当てられた値から開始されます。
識別子の最大数は 65,535 です。
列挙型のオブジェクトは int 型であり、そのサイズはシステムに依存します。 既定では、 列挙型 のオブジェクトは、ネットワーク経由で送信されるときに 、unsignedshort 型の 16 ビット オブジェクトとして扱われます。 0 から 32,767 の範囲外の値を指定すると、実行時例外がRPC_X_ENUM_VALUE_OUT_OF_RANGE。 オブジェクトを 32 ビット エンティティとして送信するには、[v1_enum] 属性を列挙型 typedef に適用します。
typedef enum {Monday=2, Tuesday, Wednesday, Thursday, Friday} workdays;
typedef enum {Clemens=21, Palmer=22, Ryan=34} pitchers;