sin*_*ngh 3 c++ compiler-construction optimization
可以说有一个c ++函数foo()返回一个布尔值.
我调用此函数来检查属性的状态或获取函数调用的结果.
那么调用这种类型函数的最佳方法是什么呢.
方法1:
bool flag = foo()
if (flag)
{
// some code
}
else
{
// else some code
}
Run Code Online (Sandbox Code Playgroud)
方法2:
if ( foo() )
{
// some code
}
else
{
// some code
}
Run Code Online (Sandbox Code Playgroud)
我的问题:使用临时变量是否为编译器提供了更好地优化的机会.
除非我需要重用旗帜,否则我通常会选择第二个.确实,在某些情况下它可能对调试有用,但我不喜欢用编译器能够自己处理的临时变量来污染代码.
解决方法是将所有方法一放在一个块中,以便在if语句之后释放该标志.没有结果的额外工作:我仍然采用方法2.