列挙型

列挙 型のデータは特定の限定されたセットに属します。下記が列挙型の定義です。

enum 列挙型名
 {
  値のリスト
 };

値のリストは、コンマで区切られた名前付き定数の識別子のリストです。

例:

enum months // 名前付き定数の列挙
  {
   January,
   February,
   March,
   April,
   May,
   June,
   July,
   August,
   September,
   October,
   November,
   December
  };

列挙の宣言後、新しい 4 バイトの整数値を持つデータ型が出現します。列挙は新しい名前付き定数を導入するため、新しいデータ型の宣言によって、コンパイラは渡されたパラメータの型を厳密に制御するようになります。上記の例では、January と名付けられた定数が 0、February が 1、December が 11 です。

規則:列挙型のメンバである名前付き定数に 特定の値が割り当てられていない場合は、新しい値が自動的に形成されることになります。それが列挙体の最初のメンバである場合、0 の値が割り当てられます。後続するメンバの全ての値は、前のメンバの値に 1 を足すことによって計算されます。

例:

enum intervals // 名前付き定数の列挙
  {
   month=1,     // 1 ヶ月の間隔
   two_months, // 2 ヶ月
   quarter,     // 3ヶ月(四半期)
   halfyear=6, // 半年
   year=12,     // 1 年(12ヶ月)
  };

注意事項

  • C++とは異なり、MQL5 での列挙型の内部表現のサイズは常に 4 バイトです。つまり、sizeof(月の名称)は 4 を返します。
  • C++とは異なり、MQL5 では匿名の列挙は宣言することは出来ません。つまり、enum キーワードの後に常に一意の名称を指定する必要があります。

参照

型キャスト