Enumeradores

Dados do tipo enum pertencem a um determinado conjunto limitado de dados. Definindo o tipo enumerador:

enum nome do tipo enumerável
  {
  lista de valores
  };

A lista de valores é uma lista de identificadores de constantes nomeados separados por vírgulas.

Exemplo:

enum months  // enumeração de constantes nomeados
   {
    January,
    February,
    March,
    April,
    May,
    June,
    July,
    August,
    September,
    October,
    November,
    December
   };

Após a enumeração ser declarada, um novo tipo de dados de inteiro de 4 bytes aparece. A declaração do novo tipo de dados permite ao compilador controlar rigidamente os tipos de parâmetros passados, porque a enumeração introduz novas constantes nomeadas. No exemplo acima, a constante nomeada January tem valor igual a 0, February - 1, December - 11.

Rule: Se um certo valor não estiver atribuído a uma constante nomeada que é membro da enumeração, seu novo valor será formado automaticamente. Se ele é o primeiro membro da enumeração, o valor 0 será atribuído a ele. Para todos os subseqüentes membros, os valores serão calculados baseados no valor dos membros anteriores adicionando um.

Exemplo:

enum intervals  // Enumeração de constantes nomeadas
   {
    month=1,     // Intervalo de um mês
    two_months,  // Dois meses
    quarter,     // Três meses - trimestre
    halfyear=6,  // Semestre
    year=12,     // Ano - 12 meses
   };

Observações

  • Diferente do C++, o tamanho da representação interna do tipo enumerado no MQL5 é sempre igual a 4 bytes. Ou seja, sizeof(months) retorna o valor 4.
  • Diferente do C++, uma enumeração anônima não pode ser declarada no MQL5. Ou seja, um nome único deve ser sempre especificado após a palavra-chave enum.

Também Veja

Conversão de Tipo (Typecasting)