【发布时间】:2020-02-23 15:27:31
【问题描述】:
我正在编写一个函数,在实际执行其任务之前检查几个条件。这是由许多if 语句完成的。像这样:
bool foo()
{
if(invalid())
return false;
if(dont_execute())
return false;
// .. etc
// Actual execution here
return true;
}
在这个函数中,将多个条件更改为:
bool foo()
{
if(invalid() || dont_execute() /* || .. etc */)
return false;
// Actual execution here
return true;
}
我觉得第一种风格更具可读性。我想知道的是,使用多个 if 语句而不是使用逻辑运算符组合是否会对性能产生影响。
【问题讨论】:
-
你对比过编译器生成的程序集吗?甚至有区别吗?你可以和godbolt.org比较一下
-
我总是选择可读性而不是性能,除非且仅当性能是最重要的因素
标签: c++ performance if-statement logical-operators