Enumerationen

Daten des Enumeration-Typs enum gehören zur einer begrenzten Datenmenge.  Definition des aufzählbaren Typs:

enum Name des aufzählbaren Typs 
  {
   Liste von Bedeutungen
  };

Liste von Bedeutungen stellt Konstantenliste dar, die durch Kommas voneinander getrennt sind.

Beispiel:

enum months  // Enumeration der benannten Konstanten 
   {
    January,
    February,
    March,
    April,
    May,
    June,
    July,
    August,
    September,
    October,
    November,
    December
   };

Nach der Vereinbarung von Enumeration erscheint ein neuer ganzzahliger 4-Byte Datentyp. Vereinbarung des neuen Datentyps ermöglicht dem Compiler Typen der übertragenen Parameter strikt zu kontrollieren, weil die Enumeration neue benannten Konstanten einführt. In dem angeführten Beispiel hat die benannte Konstante die Größe 0, February hat die Größe 1, December hat die Größe 11.

Regel: Wenn einer benannten Konstante - dem Enumeration-Glied keinen konkreten Wert zugeordnet wird, wird ihr Wert automatisch erzeugt. Wenn es das Erste Enumeration-Glied ist, wird der Wert 0 zugeordnet. Für alle folgenden Glieder werden die Werter aufgrund des Wertes vom vorangehenden Gliedes aufgezählt und eine Eins hinzugefügt.

Beispiel:

enum intervals  // Enumeration der benannten Konstanten 
   {
    month=1,     // Interval aus einem Monat 
    two_months,  // zwei Monate
    quarter,     // drei Monate - Quartal
    halfyear=6,  // Halbjahr
    year=12,     // Jahr - 12 Monate
   };

Bemerkungen

  • Zum Unterschied von  C++, ist die Größe der inneren Darstellung des aufzählbaren Typs in MQL5 immer 4 Byte. D.h. sizeof(months) gibt den Wert 4 zurück.
  • Zum Unterschied von C++, kann in MQL5 keine anonyme Enumeration erklärt werden. D.h. nach Schlüsselwort enum kann immer ein eindeutiger Name angegeben werden.

Sehen Sie auch

Typenreduzierung