【发布时间】:2013-05-01 12:50:50
【问题描述】:
我今天重写了一些旧代码以对其进行优化并使其更易读(因为其中一些注释非常粗劣),我想知道这些代码块之间是否存在任何技术性能差异:
if( cond1 )
{
// Do something.
}
else if( cond2 )
{
// Do something else.
}
还有:
if( cond1 )
{
// Do something.
}
else
{
if( cond2 )
{
// Do something else.
}
}
我对自己说不应该有性能成本,因为应该进行相同数量的比较,但我只是好奇是否有什么我忽略了。
【问题讨论】:
-
完全没有区别。如果这种差异甚至通过语法分析,我会感到惊讶,更不用说它在代码生成期间造成差异了。
-
@john 关于解析的要点。为了促进代码生成,我可以想象一个编译器将单子复合语句替换为唯一的子语句。
标签: c++ performance conditional