在c ++中使用两个if是否有所不同?

时间:2018-01-31 10:06:41

标签: c++ if-statement

之间有什么区别吗?
if (firstCheck())
    return;

if (secondCheck())
    return;

if (firstCheck() || secondCheck())
    return;

我的问题集中在运行时!

3 个答案:

答案 0 :(得分:5)

不,没有区别。优化编译器应该生成相同的二进制文件。

没有办法说一个比另一个好。如果这两个条件密切相关,我会用一个if子句写它们,如果它们是独立的,我会用两个。

答案 1 :(得分:3)

假设常规病例,两者都相似。

对于棘手/恶意的情况,firstCheck() / secondCheck()返回自定义类型,重载operator ||,它们是不同的。

答案 2 :(得分:1)

不,这被称为"短路"。如果第一个参数是operator||,则布尔值的内置false将仅评估第二个参数。