- Makrosubstitution (#define)
- Programmeigenschaften (#property)
- Include Dateien (#include)
- Import der Funktionen (#import)
- Bedingte Kompilierung (#ifdef, #ifndef, #else, #endif)
Präprozessor
Präprozessor ist ein spezielles Subsystem des MQL5 Compilers, das den Text einer Quelldatei unmittelbar vor dem Kompilieren des Programms aufbereitet.
Der Präprozessor ermöglicht es, die Lesbarkeit des Quellcodes zu verbessern. Der Codes kann strukturiert werden, indem spezielle Dateien mit Quellcodes von mql5-Programmen miteinbezogen werden. Die Möglichkeit, bestimmten Konstanten mnemonische Namen zuzuweisen, trägt zur Lesbarkeit des Codes bei.
Darüber hinaus erlaubt es der Präprozessor, spezifische Parameter von mql5-Programmen festzulegen:
- Konstanten zu deklarieren
- Programmeigenschaften zu setzen
- Dateien in Programmtext miteinzubeziehen
- Funktionen zu importieren
- Bedingte Kompilierung
Der Compiler verwendet Direktiven des Präprozessors für eine vorbereitende Verarbeitung eines Quellcodes vor der Kompilierung. Die Direktive beginnt immer mit dem Zeichen # (Doppelkreuz), deswegen verbietet der Compiler, dieses Zeichen in den Namen von Variablen, Funktionen usw. zu verwenden.
Jede Direktive wird in einem separaten Eintrag beschrieben und ist bis zum Zeilenumbruch gültig. In einem Eintrag können Sie nur eine Direktive verwenden. Wenn der Eintrag der Direktive zu groß ist, kann er mithilfe des Zeichens '\' in mehrere Zeilen aufgeteilt werden. In diesem Fall gilt die nächste Zeile als eine Fortsetzung des Eintrags dieser Direktive.
//+------------------------------------------------------------------+
|
Für den Compiler sehen alle drei Zeilen der Direktive #define als eine lange Zeile aus. In diesem Beispiel wird auch das Zeichen ## verwendet, das als Merge-Operator bezeichnet wird und für das Zusammenführen von zwei Tokens zu einem in den #define Makros verwendet wird. Der Merge-Operator kann nicht der erste oder der letzte in der Definition eines Makros sein.