是否要求短路逻辑运营商?和评估顺序?
ANSI标准是否要求逻辑运算符在C或C ++中被短路?
我很困惑,因为我记得K&R的书说你的代码不应该依赖于这些操作被短路,因为它们可能没有。有人可以指出标准中的哪个位置逻辑操作始终是短路的吗?我最感兴趣的是C ++,C的答案也很棒。
我还记得读(不记得在哪里)评估顺序没有严格定义,所以你的代码不应该依赖或假设表达式中的函数将按特定的顺序执行:在语句的末尾所有引用的函数将被调用,但编译器可以自由选择最有效的顺序。
标准是否表明该表达式的评估顺序?
if( functionA() && functionB() && functionC() ) cout<<"Hello world";
慕慕森