
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
вставить сравнение с нулем было в разы быстрее (и правильнее изначально) чем писать этот ваш пост
От struct и struct[] такого не требуется еще. И это правильно.
Однако, стоит написать без struct - ругается.
Тема - хорошая иллюстрация последствий неряшливого кода.
Вот та же инициализации структуры как ={0} - это что за ерунда ? Даже в простой структуре могут быть, например, перечисления, в которых нет значений "нуль", а в сложных - может быть все вплоть до объектов. Структура инициализируется каждым отдельным полем, и даже применение функций типа обнуления выделенной памяти - это плохая практика, фактически, являющаяся "костылями".
Или предупреждение вроде сравнение с нулем в длинном условии - совершенно верно компилятор делает предупреждение. Это потенциальное место ошибки, в сложных условиях запросто можно ошибиться.
Код должен быть прост, очевиден и прозрачен. Именно поэтому я не люблю оператор "вопросик" - слишком сложная конструкция, в которой легко можно ошибиться. А ведь некоторые используют по нескольку этих самых "вопросиков" в одной строке, типа "круто".
Разговоры про "...вместо того, чтобы продолжить работу с кодом" - и вовсе странные... Продолжай, устраняй неопределенности, типа приравнивания структуры к нулю ! Это что, не "продолжение работы с кодом" ???
Вы настолько в этом уверены ?? :-)
Ну так я и написал , мало ли что компилятору в голову стрельнет . А вообще это по ссылке выше описание булевых данных (https://www.mql5.com/ru/docs/basis/types/integer/boolconst)
Однако, стоит написать без struct - ругается.
double bid[1]={1}, ask[1]={0};
if (bid[0] && ask[0])
{
// Делаем
}
Скомпилировал в 4 (bild 1335) и 5 (bild 2361). Ругательства (Errors || Warnings) отсутствуют. Где взяли bild 2980 ?
Скомпилировал в 4 (bild 1335) и 5 (bild 2361). Ругательства (Errors || Warnings) отсутствуют. Где взяли bild 2980 ?
В секретных запасниках :))
2980 это build MT5
Тема - хорошая иллюстрация последствий неряшливого кода.
Вот та же инициализации структуры как ={0} - это что за ерунда ? Даже в простой структуре могут быть, например, перечисления, в которых нет значений "нуль", а в сложных - может быть все вплоть до объектов. Структура инициализируется каждым отдельным полем, и даже применение функций типа обнуления выделенной памяти - это плохая практика, фактически, являющаяся "костылями".
Или предупреждение вроде сравнение с нулем в длинном условии - совершенно верно компилятор делает предупреждение. Это потенциальное место ошибки, в сложных условиях запросто можно ошибиться.
Код должен быть прост, очевиден и прозрачен. Именно поэтому я не люблю оператор "вопросик" - слишком сложная конструкция, в которой легко можно ошибиться. А ведь некоторые используют по нескольку этих самых "вопросиков" в одной строке, типа "круто".
Разговоры про "...вместо того, чтобы продолжить работу с кодом" - и вовсе странные... Продолжай, устраняй неопределенности, типа приравнивания структуры к нулю ! Это что, не "продолжение работы с кодом" ???
Почти во всём согласен. Но только почти… Что касается оператора ?: не могу согласиться. Конечно наворачивать десяток таких операторов в одну строку негоже, но заменить if else в некоторых случаях, лучше не придумаешь.
Было время когда я применял этот оператор для определения цены, ask или bid, в зависимости от типа ордера\позиции. Но ведь к этому нужно определять ещё и стопы… Получалось 3 строки ?: подряд с одним условием… Пришлось отказаться, дешевле под одним условием назначить всё и сразу…
иногда по другому нельзя, нет смысла знать в каком именно индикаторе багнулся хендл,
у меня он всегда первый по счету, какой не поставь
Код должен быть прост, очевиден и прозрачен. Именно поэтому я не люблю оператор "вопросик" - слишком сложная конструкция, в которой легко можно ошибиться. А ведь некоторые используют по нескольку этих самых "вопросиков" в одной строке, типа "круто".
Необходимость, а не крутость.
ЗЫ Такая штука не является альтернативой.
Скомпилировал в 4 (bild 1335) и 5 (bild 2361). Ругательства (Errors || Warnings) отсутствуют. Где взяли bild 2980 ?
В секретных запасниках :))
2980 это build MT5
Купите очки. Написал же 5 (bild 2361), а 4 (bild 1335). Терминалы все время включены. Где взяли bild 2980 ?
Купите очки. Написал же 5 (bild 2361), а 4 (bild 1335). Терминалы все время включены. Где взяли bild 2980 ?
2980 доступен только тем, у кого стоит 64-битная Windows.