Особенности языка mql5, тонкости и приёмы работы - страница 216
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ЗЫ: еще видел макросы вида
Не понял.
Не понял.
в сети много информации об удобстве такого макроса, гуглить "macro while 0"
https://russianblogs.com/article/9410298326/
В этой ветке уже был давно пример while(0)
https://www.mql5.com/ru/forum/170952/page141#comment_12897922
На всякий случай уточню - это только для static (это все про C++). Для локальных переменных, если есть пользовательский к-тор, то обнуления нет.
Мне понравилось само объяснение, которое никак не противоречит ООП.
При создании объекта просто структуры происходит следующее:
Когда идет объявление через {}, между пунктами 1-2 вставляется еще один - забивание нулями выделенной памяти.
При такой логике ООП никак не страдает. Валидный механизм.
Когда идет объявление через {}, между пунктами 1-2 вставляется еще один - забивание нулями выделенной памяти.
При такой логике ООП никак не страдает. Валидный механизм.
Здесь страдает сама логика: зачем обнулять, если потом все равно конструктор будет?
Здесь страдает сама логика: зачем обнулять, если потом все равно конструктор будет?
Потому что структура с конструктором не может быть использована в union.
Для union инициализируем только первый член, поменяйте местами поля и тест будет проходить.
Подумаем, стоит-ли в ущерб скорости менять поведение, чтобы оно стало таким, каким ожидает его большинство пользователей.
Считайте что поменял - теперь проверяю 1ый член на равенство нулю x[i].i == 0 (ранее условие было x[i].x == 0.0)
Результат: false
А с ZeroMemory - true
в сети много информации об удобстве такого макроса, гуглить "macro while 0"
https://russianblogs.com/article/9410298326/
Вся канитель лишь ради того, чтобы ставить точку с запятой в конце макроса. Использую повсеместно фигурные скобки в макросах и бед не знаю.
Считайте что поменял - теперь проверяю 1ый член на равенство нулю x[i].i == 0 (ранее условие было x[i].x == 0.0)
Результат: false
А с ZeroMemory - true
Да. баг mql
(а в C++ возвращается true).