短路评估可以缩短编译时间,所以我了解到C,C ++正在使用这种方式。但是,是否有任何短路评估破坏代码的情况?
答案 0 :(得分:1)
短路不会缩短代码的编译时间。 (至少有任何有意义的数额)
它可能缩短了运行时间,但它并不是它的预期目的。
短路的目的是做最少量的工作以检查某种情况。
例如:
当使用&&
(而不是单个&
)时,如果左边的操作数为false,则不会对右操作数进行评估。这是由于logical and
操作的性质:如果至少有一个操作数为false,则整个表达式为false。
从技术上讲,如果条件提前失败,它将缩短运行时间,但保存的运行时间取决于每个操作数内的表达式。
无论如何,使用&&
是不正确的,因为它更快"比&
。您应该在适当的时候使用。
&
用于按位运算。