switch语句或if语句的资源成本是否较低?

时间:2015-09-01 03:10:50

标签: c++

我正在使用c ++编写2D引擎,我知道if语句在CPU使用率方面的成本低于switch语句;但是,switch语句和if语句之间的区别是现代PC甚至移动端口可忽略不计,还是我必须不惜一切代价避免使用switch

1 个答案:

答案 0 :(得分:5)

在过去的几十年里,优化工作已经走过了漫长的道路。它通常

优化

那就是说,如果你觉得你必须猜测 - 这里有一些一般的建议......

如果您有一个条件,那么只需使用if / else(或适用的? :对。

如果您有多个条件,并希望控制他们进行测试的顺序,因为您有洞察力可以让最可能的分支位于顶部,那么请使用if / [ { - 1}},或 - 更好 - 运行分析器并在重新编译时将分支预测信息反馈给优化器。

如果您有很多值来测试相同的表达式,请使用else - 编译器更有可能创建某种类型的调度表或二进制分支树,它应该超出长,平switch / if / ...链。