ООП, шаблоны и макросы в mql5, тонкости и приёмы использования - страница 17
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а разве макросы возвращают значения?
Ну вот пример кода
Ну вот пример кода
макроподстановка - это значит что весь тот код (который в дефайне), будет подставляться каждый раз в указанное место программы. То есть фактически - вместо того чтобы сделать функцию и ее вызывать, вы эту функцию копируете внутри кода много раз, как кусок кода.
И если делаете return из макроса, то это return из всего кода, где этот макрос вставлен.
макроподстановка - это значит что весь тот код (который в дефайне), будет подставляться каждый раз в указанное место программы. То есть фактически - вместо того чтобы сделать функцию и ее вызывать, вы эту функцию копируете внутри кода много раз, как кусок кода.
И если делаете return из макроса, то это return из всего кода, где этот макрос вставлен.
Получается что написать макрофункцию не получиться.
Получается что написать макрофункцию не получиться.
макроподстановка - это замена одного текста другим (в исходном коде), это не может быть функцией по определению.
Как написать 2 макроса без перехода на новую строку это очень сильно увеличивает количество строк что сильно удлинняет программу, вот пример
Макрос В уже не работает.
возможно ли имя переменной преобразовать в строку?
так не работает:
Ребята такой вопрос я хочу написать макрос makros(a), работать он будет так: если а будет равно 1це то макрос вернёт любое значение типа int, если а будет равно 2ке то макрос вернёт любое значение типа double, если а будет равно 3ке то макрос вернёт любое значение типа bool. Возможно ли так сделать?
Зачем? Для чего? Где вы его собираетесь использовать?
возможно ли имя переменной преобразовать в строку?
Ребята такой вопрос я хочу написать макрос makros(a), работать он будет так: если а будет равно 1це то макрос вернёт любое значение типа int, если а будет равно 2ке то макрос вернёт любое значение типа double, если а будет равно 3ке то макрос вернёт любое значение типа bool. Возможно ли так сделать?
В мкл можно обойтись без GET_EXPAND, но это мкл специфичная фигня, правильней так. Ну и мкл макросы очень ограничены из-за отсутствия оператора запятая (хотя через костыли ...).
ЗЫ: ну и это всё compile time, естественно.
ЗЗЫ: кстати, если бы был оператор приведения то можно так: