Ушел с форума
|
||||||
1 | ||||||
Порядок вычисления в условных выражениях28.05.2015, 15:12. Показов 3075. Ответов 1
Метки нет (Все метки)
Привет !
Есть такой код:
результате которых в лог будет выведено не YES, а NO ? Например, компилятор в процессе оптимизации сгенерирует код, где Value записывается в регистр CPU еще ДО вызова SomeFunction и правая часть выражения будет потом вычисляться с заранее взятым значением... Да, я знаю, что подвыражения вычисляются слева-направо, но глядя на этот код, что-то засомневался в конечном результате... Нет ли здесь нарушения точек следования ? Заранее благодарен всем ответившим по существу (особенно если кто-нибудь еще приведет ссылку на соответствующий пункт Стандарта, где такое поведение недвусмысленно определено).
0
|
28.05.2015, 15:12 | |
Ответы с готовыми решениями:
1
Порядок вычисления в логических выражениях. Порядок вычисления Порядок вычисления выражения порядок вычисления выражений |
66 / 66 / 18
Регистрация: 31.03.2015
Сообщений: 253
|
|
28.05.2015, 17:12 | 2 |
Операции && выполняются слева направо. Такая операция дает результат
1, если оба операнда ее отличны от нуля, иначе результат - 0. В отличие от & при операции && гарантируется вычисление слева направо, более того, второй операнд не вычисляется, если первый операнд равен 0. Операнды не обязательно имеют одинаковый тип, но каждый должен быть арифметического типа или типа указателя. Тип результата int. Все побочные эффекты вычисления первого выражения могут возникать до вычисления второго выражения. Взято из Бьярн Страустрап. Справочное руководство по C++ Для ИЛИ тоже самое Так что думаю, в вашем случае можно не опасатся кеширования значений.
0
|
28.05.2015, 17:12 | |
28.05.2015, 17:12 | |
Помогаю со студенческими работами здесь
2
Порядок вычисления операций Порядок вычисления выражения порядок вычисления штрихов Шеффнера Порядок вычисления численного и символьного Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |