Ошибки, баги, вопросы - страница 3611
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я дал объяснение, но вы его не поняли.
Из Вашего пояснения видно, что последовательность расчётов никак не регламентируется, а отдаётся на "откуп" компилятору.
Но в обсуждаемом примере чётко прослеживается последовательность, где можно (а может и нужно) учитывать математические приоритеты. Иначе нет возможности понимать в какой из очередных компиляций приоритеты будут расставлены иначе, чем в предыдущий раз, что приведёт к совершенно иным результатам при работе программы.
Я понимаю, что можно все расчёты сделать построчно шаг за шагом. Но оно стоит того?
Из Вашего пояснения видно, что последовательность расчётов никак не регламентируется, а отдаётся на "откуп" компилятору.
Но в обсуждаемом примере чётко прослеживается последовательность, где можно (а может и нужно) учитывать математические приоритеты. Иначе нет возможности понимать в какой из очередных компиляций приоритеты будут расставлены иначе, чем в предыдущий раз, что приведёт к совершенно иным результатам при работе программы.
Я понимаю, что можно все расчёты сделать построчно шаг за шагом. Но оно стоит того?
MQL использует ту же компиляцию, что и язык C.
Оба варианта верны.
Вы НЕ МОЖЕТЕ полагаться на порядок выполнения или на то, как компилятор будет оценивать операнды.
Вы НЕ МОЖЕТЕ полагаться на порядок выполнения или на то, как компилятор будет оценивать операнды.
Надеюсь, что оценка операндов в логических операциях всегда слева направо. Если это так, то это только благодаря brief estimate?
Очень распространенные примеры инициализации чего-то, где порядок оценки операндов критически важен:
Очень распространенные примеры инициализации чего-то, где порядок оценки операндов критически важен:
Из того примера не очевидно, что порядок оценки операндов критически важен. Вот другой пример:
Надеюсь, что оценка операндов в логических операциях всегда слева направо. Если это так, то это только благодаря brief estimate?
Очень распространенные примеры инициализации чего-то, где порядок оценки операндов критически важен:
Интересно, почему для C# Microsoft разделяет [Logical AND operator &, Logical OR operator |, Logical exclusive OR operator ^] и bitwise версии этих операторов. При этом их C++ reference говорит только про bitwise версии (как и документация по MQL). Я слаб в побитовой арифметике. Logical и bitwise версии это одно и то же или нет? Будут ли в MQL побитовые операторы примененные к bool операндам работать так же, как это описывается по ссылкам, которые я привел?
Видимо я не смогу объяснить так, чтобы было понятно…
Вот смотри… Казалось бы переменной уже присвоено новое значение, ан нет, пока ещё j равна 2
Logical и bitwise версии это одно и то же или нет?
Совсем нет. Побитовые - это когда идёт работа с машинным представлением числа(или символа, ...) как с набором битовых флагов. В первом приближении это можно представить как структуры булевых переменных и логические операции над такими структурами.
А тут вариантов только два. Или разработчики исправят, или надо помнить о таких вариантах и не пытаться применять всяческие извращения которые зачастую приводят к непредсказуемому результату.