Перечисления

Данные перечислимого типа enum относятся к некоторому ограниченному множеству данных. Определение перечислимого типа:

enum имя_перечислимого_типа
  {
   список_значений
  };

Список значений представляет из себя список идентификаторов именованных констант, разделенных запятыми.

Пример:

enum months  // перечисление именованных констант
   {
    January,
    February,
    March,
    April,
    May,
    June,
    July,
    August,
    September,
    October,
    November,
    December
   };

После объявления перечисления появляется новый целочисленный 4-байтовый тип данных. Объявление нового типа данных позволяет компилятору строго контролировать типы передаваемых параметров, так как  перечисление вводит новые именованные константы. В приведенном примере именованная константа January имеет значение 0, February имеет значение 1,  December имеет значение 11.

Правило: если именованной константе - члену перечисления явно не присвоено конкретное значение, то ее значение будет сформировано автоматически. Если это первый член перечисления, то будет присвоено значение 0. Для всех последующих членов значения будет вычисляться на основе значения предыдущего члена путем прибавления единицы.

Пример:

enum intervals  // перечисление именованных констант
   {
    month=1,     // интервал в один месяц
    two_months,  // два месяца
    quarter,     // три месяца - квартал
    halfyear=6,  // полугодие
    year=12,     // год - 12 месяцев
   };

Примечания

  • В отличие от C++, размер внутреннего представления перечислимого типа в MQL5 всегда составляет 4 байта. То есть, sizeof(months) вернет значение 4.
  • В отличие от C++, в MQL5 нельзя объявить анонимное перечисление. То есть, после ключевого слова enum всегда должно быть указано уникальное имя.

Смотри также

Приведение типов