文法:
enum name {名前リスト} 変数リスト;
enumキーワードは列挙型を作成するのに使用されます。 名前リストの要素の名前で構成された列挙型が作成されます。 変数リスト引数はオプションで、宣言で作成された型のインスタンスを作成することができます。 例えば、以下のサンプルコードは色に関する列挙型を作成しています:
enum ColorT {red, orange, yellow, green, blue, indigo, violet}; ... ColorT c1 = indigo; if( c1 == indigo ) { cout << "c1 is indigo" << endl; }
上記の例では、列挙型を宣言することにより、red, orange, yellowなどの名前の新しい定数が作成されます。 これらの定数には、ゼロから始まる連続した整数値が割り当てられます。 指定された値を変更するには次のサンプルのようにします:
enum ColorT { red = 10, blue = 15, green }; ... ColorT c = green; cout << "cの値は " << c << " です" << endl;
このコードを実行すると、このコードは以下のような文字列を出力します:
cの値は 16 です
上記のサンプルはC++コンパイラでしか動作しません。 もしも通常のC言語の中で動作させたい場合には、列挙型のインスタンスを作成する場所で、必ずenumキーワードを書く必要があります:
enum ColorT { red = 10, blue = 15, green }; ... enum ColorT c = green; /* C言語の場合はenumを書く必要があります */ printf( "cの値は %d です\n", c );
もしくは、typedefを使えばCでもC++でも同じように書くことができます:
typedef enum ColorT { red = 10, blue = 15, green } ColorT; ... ColorT c = green; /* もうenumを書く必要はありません */ printf( "cの値は %d です\n", c );