enum

提供: RAD Studio
移動先: 案内検索

キーワード(アルファベット順):インデックス への移動


カテゴリ

型指定子

構文

 [<type_tag>] {<constant_name> [= <value>], ...} [var_list];
  • <型タグ> は任意指定で、セットの名前を表します。
  • <定数名> は定数の名前で、任意指定で値を割り当てることができます。 これらは列挙型定数とも呼ばれます。
  • <value> は、整数でなければなりません。<value> がない場合、次であると想定されます: <prev> + 1

ここでの <prev> は、リスト内の前の整数定数の値です。リスト内の最初の整数定数のデフォルト値は 0 です。

  • <変数リスト> は、この列挙型を使用する任意指定の変数リストです。

説明

enum キーワードを使用すると、列挙データ型と呼ばれる一連の int 型の定数を定義できます。

列挙データ型には一連の整数値にニーモニック識別子が付きます。 -b フラグを使用すると、[整数サイズの列挙型] オプションを切り替えることができます。 値の範囲に問題がない場合、列挙定数は常に int と解釈されますが、int でない場合は、式内で値が int に拡張されます。 列挙子の値に基づき、列挙型リスト内の識別子は暗黙に signed char、または unsigned charshortunsigned shortintunsigned int 型となります。

型チェックは行われませんが、C では列挙型の変数を int 型の値に代入することができます。 C++ では列挙型の変数に代入できるのはその列挙子のいずれかに限られます。

C++ では <型タグ> を同じスコープ内の別の場所で使っていない限り、enum キーワードを省略することができます。 また、この enum 型の変数を必要としない場合、<型タグ> も省略できます。

<値> が指定されていない場合、最初の列挙子の値は 0 となります。 それに続く列挙子で、初期値の指定がないものは、値が 1 ずつ大きくなります。 <値> には、(int 型への拡張後)正または負の整数値となる限り、任意の式が指定可能です。 通常、列挙子の値は一意となりますが、値を重複させることもできます。

列挙型タグは、構造体タグや共有体タグと同じ名前空間を共有します。列挙子は、通常の変数識別子と同一の名前空間を共有します。

C++ の場合、クラス内で宣言された列挙子はクラスのスコープ内に限定されます。