switch总结:

2021-09-21  本文已影响0人  冰雨9527

1、假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。

2、各个分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。

3、在分支比较多的时候:在编译的时候会生成一个表(跳转表每个地址四个字节)。

小结:

在使用 switch语句 和 if...else语句执行效率高低的问题,是可以通过汇编代码得出结论:

当 switch 分支和 if...else的条件判断小于4的时候,执行效率是一样的;

当 switch 分支和 if...else的条件判断大于等于4的时候,switch 执行效率更高。

3.4 switch总结

1、假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。

2、各个分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。

3、在分支比较多的时候:在编译的时候会生成一个表(跳转表每个地址四个字节)

当case的值,不规律的时候,他的汇编代码又会回归到 if - else if -else ..的汇编指令【这里我就不再过多的分析汇编解释】

所以我们写case 必须是规律的且分支大于三的时候,最能保证我们代码的执行效率

上一篇 下一篇

猜你喜欢

热点阅读