|
Условная компиляция (#ifdef, #ifndef, #else, #endif)
Директивы условной компиляции препроцессора позволяют компилировать или пропускать часть программы в зависимости от выполнения некоторого условия.
Условие может принимать одну из описываемых ниже форм.
#ifdef identifier |
#ifndef identifier |
За любой из команд условной компиляции может следовать произвольное число строк, содержащих, возможно, команду вида #else и заканчивающихся #endif. Если проверяемое условие справедливо, то строки между #else и #endif игнорируются. Если же проверяемое условие не выполняется, то игнорируются все строки между проверкой и командой #else, а если ее нет, то командой #endif.
Пример:
#ifndef TestMode |
В зависимости от типа программы и режима компиляции стандартные макросы определяются следующим образом:
Макрос __MQL5__ доступен при компиляции файла *.mq5, при компиляции *.mq4 доступен макрос __MQL4__.
Макрос _DEBUG доступен при компиляции под отладку.
Макрос _RELEASE доступен при компиляции не под отладку.
Пример:
//+------------------------------------------------------------------+ |