【问题标题】:If block vs Switch-Case blockIf 块与 Switch-Case 块
【发布时间】:2010-10-14 14:47:59
【问题描述】:

一般来说,使用带有许多 else if 的 if 块与 switch case 块相比是否存在性能差异?某些语言或样式约定是否更喜欢其中一种?

特别是我对 Matlab、C 和 C++ 感到好奇

【问题讨论】:

标签: performance language-agnostic if-statement switch-statement conditional-statements


【解决方案1】:

在某些情况下,编译器可以将开关优化为查找表和分支。这可能比多个 if/else-if 快得多。

【讨论】:

    【解决方案2】:

    在 C 中,优化器可以将 switch 转换为计算的 jmp,因此它可以更快。这是可能的,因为您总是打开一个整数常量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多