列挙型 は、名前付き整数定数である値のセットから構成されているデータ型です。 これは、値ごとに名前を作成するときにそれぞれの値をリスト (列挙) しなければならないため、列挙された型 とも呼ばれます。 列挙型の名前付き値は、列挙型定数 と呼ばれます。 列挙型は、整数定数のセットを定義しグループ化する方法を提供するのに加え、少数の可能な値を持つ変数にとって役立ちます。
列挙型データ型と、あるステートメントに列挙型が指定されたすべての変数を定義できます。 または、列挙型をその型の変数の定義とは別に宣言できます。 データ型 (オブジェクトではなく) に関連した ID は、列挙型タグ と呼ばれます。列挙が異なれば、列挙型も異なります。
C では、列挙された型それぞれは、それを表す整数型と互換性がなければなりません。列挙型変数および定数は、コンパイラーによって整数型のように取り扱われます。
したがって、C では型互換性に関係なく、列挙された異なる型の値を自由に混合することができ
ます。
表示される列挙型と整数型の互換性は、コンパイラー・オプションと関連プラグマによって
制御されます。enum コンパイラー・オプションおよび関連する
#pragma の詳しい説明については、「XL C/C++ コンパイラー・リファレンス」を参照してください。
C++ では、列挙された型を、お互い別個のものであり、整数型とは異なるものとして取り扱います。
整数を列挙型の値として使用するためには、整数を明示的にキャストしなければなりません。
関連参照