- Macro de substitution (#define)
- Propriétés du Programme (#property)
- Inclure des Fichiers (#include)
- Importer des Fonctions (#import)
- Compilation Conditionnelle (#ifdef, #ifndef, #else, #endif)
Compilation Conditionnelle (#ifdef, #ifndef, #else, #endif)
The preprocessor directives are used by the compiler to preprocess the source code before compiling it. The directive always begins with #, therefore the compiler prohibits using the symbol in names of variables, functions etc.
Each directive is described by a separate entry and is valid until the line break. You cannot use several directives in one entry. If the directive entry is too big, it can be broken into several lines using the '\' symbol. In this case, the next line is considered a continuation of the directive entry.
Les directives de compilation conditionnelle du préprocesseur permettent de compiler ou d'ignorer une partie du programme suivant une certaine condition.
Cette condition peut prendre l'une des formes suivantes.
#ifdef identifiant
|
#ifndef identifiant
|
Toutes les directives de compilation conditionnelles peuvent être suivis par un certain nombre de lignes contenant peut être une directive #else et se terminant par #endif. Si la condition vérifiée est vraie, les lignes entre #else et #endif sont ignorées. Si la condition vérifiée est fausse, toutes les lignes entre les directives #ifdef/#ifndef et #else (ou #endif s'il n'y a pas de #else) sont ignorées.
Exemple :
#ifndef TestMode
|
Suivant le type du programme et le mode de compilation, les macros standards sont définies de la façon suivante :
La macro __MQL5__ est définie lors de la compilation d'un fichier *.mq5, la macro __MQL4__ est définie lors de la compilation d'un fichier *.mq4.
La macro _DEBUG est définie lors d'une compilation en mode debug.
La macro _RELEASE est définie lors d'une compilation en mode release.
Exemple :
//+------------------------------------------------------------------+
|