
2.6
型
void
31
enum color {black, red, green, yellow, blue, white=7, gray};
識別子
color
はこの列挙のタグである。並んでいる
black
,
red
などの識別子は、列挙定
数で型
int
である。これらの定数はスコープ内のどこでも、例えば
switch
文の
case
定数に
使える。
列挙型の列挙定数は、並び中の位置によって暗黙に決められるか、定数式で明示的に初
期化する値を表す。初期化されない定数は、並びの先頭なら0、それ以外は前の定数値 +1
を値とする。先ほどの例で、定数は値0, 1, 2, 3, 4, 7, 8である。
列挙型のスコープ内で、型を宣言に用いることができる。
enum color bgColor = blue, // 2
変数を型
enum color
で定義
fgColor = yellow;
void setFgColo
r(enum color fgc); //
関数を型
enum color
の引数で定義
列挙型は常に標準整数型の 1つに対応する。Cプログラムでは列挙型の変数と通常の算
術演算ができる。コンパイラは、列挙定数の定義値に応じて適切な整数型を選ぶ。先ほど
の例では、列挙型
enum color
のすべての値を表すのに型
char
で十分だ。
列挙の異なる定数が同じ値でも構わない。
enum {OFF, ON, STOP = 0, GO = 1, CLOSED = 0, OPEN = 1};
この例は、列挙型の定義にタグが必要ではないこと ...