который будет выполнен первым в оценке короткого замыкания (a && b)

-10

Допустим, у меня есть следующий код:

if (a&&b)
{
...
}

Первый вопрос, кто решает использовать оценку короткого замыкания в этом случае? компилятор или стандарт C?

Второй вопрос, который будет оцениваться первым? a или b. Последовательность определяется кем и есть ли способ изменить последовательность в моем коде?

спросил(а) 2021-01-25T20:23:03+03:00 5 месяцев назад
1
Решение
127

Стандарт требует оценки короткого замыкания.

Это всегда первое. a Вы не можете изменить это в своей программе.

Ссылка: 6.5.13 Логический оператор И, пункт 4:

В отличии от побитового двоичного & оператора, то && оператор гарантирует, слева-правую оценку; если второй операнд оценивается, то существует точка последовательности между оценками первого и второго операндов. Если первый операнд сравнивается с 0, второй операнд не оценивается.

ответил(а) 2021-01-25T20:23:03+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема