如果阻止vs Switch-Case阻止

时间:2010-10-14 14:48:00

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

与开关案例块相比,使用if块和其他许多ifs之间通常会有性能差异吗?某些语言或风格约定更喜欢一种吗?

具体来说,我对Matlab,C和C ++感到好奇

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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