我正在使用c ++编写2D引擎,我知道if
语句在CPU使用率方面的成本低于switch
语句;但是,switch
语句和if
语句之间的区别是现代PC甚至移动端口可忽略不计,还是我必须不惜一切代价避免使用switch
?
答案 0 :(得分:5)
在过去的几十年里,优化工作已经走过了漫长的道路。它通常
优化那就是说,如果你觉得你必须猜测 - 这里有一些一般的建议......
如果您有一个条件,那么只需使用if
/ else
(或适用的?
:
对。
如果您有多个条件,并希望控制他们进行测试的顺序,因为您有洞察力可以让最可能的分支位于顶部,那么请使用if
/ [ { - 1}},或 - 更好 - 运行分析器并在重新编译时将分支预测信息反馈给优化器。
如果您有很多值来测试相同的表达式,请使用else
- 编译器更有可能创建某种类型的调度表或二进制分支树,它应该超出长,平switch
/ if
/ ...链。