ой да это просто директива присвоения идентификаторам выражений, потом юзаете сами идентификаторы вместо длинных выражений
ой да это просто директива присвоения идентификаторам выражений, потом юзаете сами идентификаторы вместо длинных выражений
Можно пару примеров ?
Можно пару примеров ?
http://www.c-cpp.ru/books/define в гугле много :)
- www.c-cpp.ru
http://www.c-cpp.ru/books/define в гугле много :)
Спасибо!
А как сделать функцию ?
например то что сейчас я кручу
#define dt Digits() #define pt Point() #define ND (nm) double dr (return NormalizeDouble((nm)*(pt),(dt)))никак не получается, сообразить не могу...
Собственно вопрос в теме. Никогда ранее не интересовался дефайнами, теперь хочу освоить.
Можно пару простых и пару сложных примеров ?
Больше интересует вопрос по скорости работы, есть ли смысл работать с дефайнами ?
В справке не нашёл примера создания функции, то же хотелось бы увидеть пример.
Например, нам требуется работать с таким числом, как количество секунд в сутках. Это число 86 400. Если его просто вставить в код, то далеко не всякий программист сможет понять, что оно обозначает. Да и сам автор кода чрез год или два, взглянув на код, будет долго вспоминать, что это такое. А если применить именованную константу:
#define SECONDS_IN_DAY 60 * 60 * 24 ... for (int i = 0; i < SECONDS_IN_DAY; ++i) { } ...
то все становится сразу же понятно.
Второй момент, который наиболее часто связан с применением констант, это то же самое, что и переменная, но неизменяемая в коде. Например, исходя из архитектуры программы, приняли, что советник может поддерживать только 10 ордеров одного направления. Большее количество открывать нельзя:
#define MAX_ORDERS_OF_ONE_TYPE 10 .... if (nBuyOrdersCnt < MAX_ORDERS_OF_ONE_TYPE) { // Открываем еще один Buy-ордер } if (nSellOrdersCnt < MAX_ORDERS_OF_ONE_TYPE) { // Открываем еще один Sell-ордер } ....
Через некоторое время мы решили, что 10 ордеров одного направления - многовато. Лучше сделать 5. Чтобы не искать в коде всё, что связано с максимальным разрешенным количеством ордеров, просто меняем значение константы MAX_ORDERS_OF_ONE_TYPE и компилируем код.
Можно возразить, что в таком случае проще сделать настроечный параметр. Но на каждый "чих" вводить свой параметр нецелесообразно. Тем более, когда это связано сугубо с кодом,а вовсе не с постановкой задачи.
А как сделать функцию ?
например то что сейчас я кручу
никак не получается, сообразить не могу...Это уже макросы получаются. Посмотрите у fxsaber, он их очень любит.
Спасибо!
А как сделать функцию ?
например то что сейчас я кручу
никак не получается, сообразить не могу...
http://www.codenet.ru/progr/cpp/Macros.php
return там не надо
в принципе-то для ф-й это наверное не так актуально, потмоу что ф-ии и так быстро и легко вызываются :)
Это уже макросы получаются. Посмотрите у fxsaber, он их очень любит.
да я видел пару примеров, но сейчас найти не могу, я видел подсчет ордеров в одну строку, но тогда этот пример я оставил на потом,
сейчас это "потом" пришло и а я не могу найти примеры... даже у fxsaber нет таких примеров ..
https://www.mql5.com/ru/forum/212128
К сожалению данный урок уже не актуален... Пробовал не работает ...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собственно вопрос в теме. Никогда ранее не интересовался дефайнами, теперь хочу освоить.
Можно пару простых и пару сложных примеров ?
Больше интересует вопрос по скорости работы, есть ли смысл работать с дефайнами ?
В справке не нашёл примера создания функции, то же хотелось бы увидеть пример.