在返回某个函数的函数中使用else if / if之间的性能是否存在差异?我的意思是,如果函数已经返回,如果反正它将不会执行下一个,这是其他的目的,如果,对吧?我写了一个小代码片段来说明
#include <iostream>
bool foo(int x)
{
if (x == 3) return 1;
else if (x == 4) return 1; //using only if here has the performance of else if?
return 0;
}
int main()
{
int x = 4;
std::cout << foo(x);
std::cin.get();
return 0;
}
答案 0 :(得分:0)
它应该都是一样的,检查更好的性能的一种方法是比较你的汇编代码,你可以使用像godbolt.org这样的工具,通常生成较少指令的代码执行得更快。
顺便说一句,如果你在其他两种情况之前比较“返回0”会更好,因为几乎100%的输入参数不是3或4,if (x != 3) return 0;
return 1;
比
好多了if (x == 3) return 1;
return 0;