2vi*_*on2 4 c c++ if-statement switch-statement
以下是我需要优化和计划的代码,以便切换到最佳状态.但我可以比较一下.所以我计划将comaparision(len> 3)作为默认情况.
如果我将比较部分(len> 3)作为默认情况并在swith中添加默认值,它会更快吗?
或者我如何将下面的代码作为switch语句?
if ( len > 3 ) {
which will happen more often;
}
else if ( len == 3 ) {
next case which may occur often;
} else if ( len == 2 ) {
the next priority case;
} else {
and this case occurs rarely;
}
Run Code Online (Sandbox Code Playgroud)
可能不是.这两个if...else和switch...case高层次的结构.什么减慢你的速度是分支预测.预测越好,代码运行得越快.就像你写的一样,你应该将你最常见的案例放在第一个if,第二个else if,依此类推.因为switch结果取决于内部编译器实现,它可以重新排序案例,尽管你自己的订单.在default实际应被保留用于更少的情况下发生的,因为条件的其他国家必须回落到前进行检查default.
总而言之,if...else只要您按正确的顺序设置条件,性能方面的使用就是最佳的.关于switch...case它的编译器特定,取决于应用的优化.
还要注意,它switch...case比if...else仅支持简单的值比较更有限.