是否有任何合理的场景,程序员可能希望避免对布尔表达式进行短路评估?

is there any plausible scenario in which a programmer might wish to avoid shortcircuit evaluation of a Boolean expression?

short circuit evaluation可以缩短编译时间,所以才知道C,C++都是这么用的。但是有没有短路求值破坏代码的情况呢?

短路不会缩短代码的编译时间。 (至少任何有意义的数量)

它可能会缩短运行时间,但这不是它的预期目的。

短路的目的是为了检查特定条件做最少的工作。

例如:

当使用 &&(与单个 & 相对)时,如果左边的操作数为假,则不会计算右边的操作数。这是由于 logical and 操作的性质:如果至少一个操作数为假,则整个表达式为假。

从技术上讲,如果条件提前失败,它会缩短运行时间,但节省的运行时间取决于每个操作数中的表达式。

无论如何,使用 && 是不正确的,因为它比 & "faster"。您应该在适当的时候使用其中之一。

&用于位运算