有没有合理的场景,程序员可能希望避免布尔表达式的短路评估?

时间:2016-05-22 18:30:32

标签: c++ c short-circuiting

短路评估可以缩短编译时间,所以我了解到C,C ++正在使用这种方式。但是,是否有任何短路评估破坏代码的情况?

1 个答案:

答案 0 :(得分:1)

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

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

短路的目的是做最少量的工作以检查某种情况。

例如:

当使用&&(而不是单个&)时,如果左边的操作数为false,则不会对右操作数进行评估。这是由于logical and操作的性质:如果至少有一个操作数为false,则整个表达式为false。

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

无论如何,使用&&是不正确的,因为它更快"比&。您应该在适当的时候使用。

&用于按位运算。