Enumeraciones

Los datos del tipo enumerativo enum se refieren a una cantidad limitada de datos. La definición del tipo enumerativo:

enum nombre del tipo enumerativo
  {
   lista de valores
  };

La lista de valores es una lista de variables separadas por comas.

Ejemplo:

enum months  // enumeración de las constantes concretas
   {
    January,
    February,
    March,
    April,
    May,
    June,
    July,
    August,
    September,
    October,
    November,
    December
   };

Después de declarar una enumeración aparece un nuevo tipo de datos de números enteros de 4 bytes. La declaración del nuevo tipo de datos permite al compilador controlar de una forma estricta los parámetros transferidos porque la enumeración establece nuevas constantes concretas. En el ejemplo de arriba la constante concreta January tiene el valor 0, February tiene el valor 1, December tiene el valor 11.

Regla: si una constante concreta, siendo un elemento de enumeración, no tiene adjudicado un valor concreto entonces su valor se forma de una manera automática. Si se trata del primer elemento de enumeración se le va a adjudicar el valor 0. Para todos los elementos posteriores los valores se calculan a base del valor del elemento anterior sumándole un uno.

Ejemplo:

enum intervals  // enumeración de las constantes concretas
   {
    month=1,     // intervalo de un mes
    two_months,  // dos meses
    quarter,     // tres meses - trimestre
    halfyear=6,  // semestre
    year=12,     // año — 12 meses
   };

Observaciones

  • A diferencia de C++ el tamaño interno de la representación de un tipo enumerativo en MQL5 siempre es de 4 bytes. Es decir, sizeof(months) devolverá el valor 4.
  • A diferencia de C++ en MQL5 no se puede declarar una enumeración anónima. Es decir, después de la palabra clave enum siempre hay que indicar un nombre único.

Véase también

Conversión de tipos