Хотя я бы сам не написал, каков ожидаемый результат следующего утверждения, где A
(с гарантированным нулем или положительным целым числом) больше 1?
return A || 1;
Во многих языках я ожидаю, что будет возвращено A
, если только значение A
не равно нулю, в этом случае 1 будет.
У меня нет моей книги на С, но я отмечаю, что в действительности значение 1 всегда возвращается. Это результат оптимизации компилятора или потенциальная неоднозначность выражения, или же возвращаемое значение недетерминировано?