Справочник MQL4 Основы языка Препроцессор Макроподстановка (#define)
Макроподстановка (#define, #undef)Директива #define может быть использована для присвоения мнемонических имен выражениям. Существует две формы:
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. Идентификатор константы подчиняется тем же правилам, что и для имен переменных. Значение может быть любого типа:
expression может состоять из нескольких токенов, таких как ключевые слова, константы, константные и неконстантные выражения. expression заканчивается с концом строки и не может быть перенесено на следующую строку. Пример
Параметрическая форма #defineПри параметрической форме все последующие найденные вхождения identifier будут заменены на expression с учетом фактических параметров. Например,
Обязательно заключайте параметры в круглые скобки при использовании параметров в expression, так как это позволит избежать неочевидных ошибок, которые трудно найти. Если переписать пример без использования скобок, то результат окажется совсем другой:
При использовании параметрической формы допускается не более 8 параметров.
Директива #undefДиректива #undef предназначена для отмены макроса, объявленного ранее. Пример:
Смотри также Идентификаторы, Символьные константы |