Неоднократно встречал конструкцию, подобную такой:
Но в документации я не нашел ничего по поводу предварения токена символом '#'
Подскажите, где это описано.
Я не рылся в справке MQL5 (лень), но допускаю, что эту подробность могли упустить. Из вашего примеря ясно, что препроцессор, которому, в отличие от компилятора, доступны исходники в изначальном виде, передает компилеру кострукцию с подставленным именем токена А в качестве первого параметра, то есть, компилер на входе съест строку
Print("abc","=",abc);
А вообще, советую почитать статьи по дефайнам от Майкрософт, например тут и тут Метаквоты в 2012 г. напряглись, и под чутким руководством CEO Рената Фатхулина забабахали в МТ4 вполне полноценные дефайны. Я на радостях тогда напился в юзю и даже ответно забабахал . Ибо до этого дефайны в МТ4 напоминали 3-дневного зародыша в женском чреве. Вообще, современный MQL4/5 довольно близок к плюсам, так что MSDN к вашим услугам.

- 2022.09.27
- corob-msft
- learn.microsoft.com
Я не рылся в справке MQL5 (лень), но допускаю, что эту подробность могли упустить. Из вашего примеря ясно, что препроцессор, которому, в отличие от компилятора, доступны исходники в изначальном виде, передает компилеру кострукцию с подставленным именем токена А в качестве первого параметра, то есть, компилер на входе съест строку
А вообще, советую почитать статьи по дефайнам от Майкрософт, например тут и тут Метаквоты в 2012 г. напряглись, и под чутким руководством CEO Рената Фатхулина забабахали в МТ4 вполне полноценные дефайны. Я на радостях тогда напился в юзю и даже ответно забабахал . Ибо до этого дефайны в МТ4 напоминали 3-дневного зародыша в женском чреве. Вообще, современный MQL4/5 довольно близок к плюсам, так что MSDN к вашим услугам.
Алексей, а разве не сразу в 600+ билдах появились такие предопределённые дефайны
В зависимости от типа программы и режима компиляции стандартные макросы определяются следующим образом:
Макрос __MQL5__ доступен при компиляции файла *.mq5, при компиляции *.mq4 доступен макрос __MQL4__.
выделенные жёлтым.

- www.mql5.com
Неоднократно встречал конструкцию, подобную такой:
Но в документации я не нашел ничего по поводу предварения токена символом '#'
Подскажите, где это описано.
Конкретного описания я не встречал, а пример в документации есть.

- www.mql5.com
не нашел ничего по поводу предварения токена символом '#'
#define MACROS(A) Print(#A); A void OnStart() { MqlTick Ticks[5]; // Ниже обе строки идентичны. MACROS(ArrayPrint(Ticks)); Print("ArrayPrint(Ticks)"); ArrayPrint(Ticks); }
Хмм, вот проснулся и подумал, а когда я использую дефы?
И понял, что только для времянки.
А вообще, советую почитать статьи по дефайнам от Майкрософт, например тут и тут
Спасибо. То, что надо.
Я понял, что в макроподстановках MQL нельзя использовать charizing ( #@ ) operator, а в остальном синтаксис совдадает.
PS. Положу сюда ссылку, чтобы не искать в случае чего.
https://learn.microsoft.com/en-us/cpp/preprocessor/preprocessor-operators?view=msvc-170

- 2021.08.03
- corob-msft
- learn.microsoft.com
Спасибо. То, что надо.
Я понял, что в макроподстановках MQL нельзя использовать charizing ( #@ ) operator, а в остальном синтаксис совдадает.
PS. Положу сюда ссылку, чтобы не искать в случае чего.
https://learn.microsoft.com/en-us/cpp/preprocessor/preprocessor-operators?view=msvc-170
Друг по разуму))
Не надо углубляться в козни Майкрософт. Я привел их MSDN чисто в качестве примера )). Я еще раз скажу: С++ близко похож на MQL, но именно близко

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Неоднократно встречал конструкцию, подобную такой:
Но в документации я не нашел ничего по поводу предварения токена символом '#'
Подскажите, где это описано.