они растут очень быстро. d
етствует ли стандарт ANSIмандат логические операторы, которые должны быть замкнуты, в C или C ++?
Я запутался, вспомнив книгу K & R, в которой говорилось, что ваш код не должен зависеть от короткого замыкания этих операций, потому что они могут не зависеть. Может ли кто-нибудь указать, где в стандарте говорится, что логические операции всегда закорочены? Я в основном заинтересован в C ++, и ответ на C был бы отличным.
Я также помню, как читал (не могу вспомнить, где), что порядок вычисления не является строго определенным, поэтому ваш код не должен зависеть или предполагать, что функции в выражении будут выполняться в определенном порядке: к концу оператора все ссылочные функции будет вызван, но у компилятора есть свобода выбора наиболее эффективного порядка.
Указывает ли стандарт порядок оценки этого выражения?
if( functionA() && functionB() && functionC() ) cout<<"Hello world";