if else 以下两种用法 那种高效
- C/C++ code
void fun1(void){ int var; if (var > 0) { //执行这里大约的100条语句 } else { //执行几条语句 } return ;}void fun2(void){ int var; if (!(var>0) { //执行几条语句 return ; } //执行这里大约的100语句 }请问 上面的两个 函数 那个函数执行的效率高
ps:两个函数里面的代码是一样的 只是 排列方式不一样 位置不一样
[解决办法]
这得看到底是var>0多一些还是!(var>0)多一些。
高质量的编程要求将最可能出现的情况放在前面。这符合人的思维习惯,也符合性能提升的要求。
顺序执行的时候,流水线的利用率是最高的。遇到跳转的时候,流水线就得清空,然后将跳转后的指令依次装入流水线。
if...else...通常编译成条件判断,如果条件成立,则执行后面的指令,如果条件不成立,跳转到else处...。
[解决办法]
好奇地问一下,楼主你们会用性能测试之类的工具检查自己程序的速度,瓶颈什么的嘛。如果用的话,自己可以用工具测一下。
如果你们不用工具测的话,就你举的这个例子,像这种小地方,很难说会影响性能,光靠自己猜测哪里会更快或者更慢,99%的时候你都是错的