Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
短路评估可以缩短编译时间,因此我了解到C,C ++正在使用这种方式。但是,是否存在短路评估破坏代码的情况?
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
短路评估可以缩短编译时间,因此我了解到C,C ++正在使用这种方式。但是,是否存在短路评估破坏代码的情况?
最佳答案
短路不会缩短代码的编译时间。 (至少有意义的数量)
这可能会缩短运行时间,但这不是其预期目的。
短路的目的是进行最少的工作以检查特定条件。
例如:
使用&&
(而不是单个&
)时,如果左侧的操作数为false,则不会评估右侧的操作数。这是由于logical and
操作的性质所致:如果至少一个操作数为false,则整个表达式为false。
从技术上讲,如果条件提早失败,它将缩短运行时间,但是保存的运行时间取决于每个操作数内部的表达式。
无论如何,使用&&
是不正确的,因为它比&
更快。您应该在适当的时候使用。&
用于按位运算。
关于c++ - 是否有任何可能的情况,程序员可能希望避免对 bool 表达式的短路求值? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37378033/
10-11 23:07