switch语句的汇编代码生成

 

不知道对不对哦

if

else if 语句如果嵌套太多的话,效率就会低下, 解决办法是把命中率高的写在前面。

switch语句为什么比if语句效率高:

switch的几种优化方式:

1:少于3case就会优化成if语句形式。

1

clip_image001

clip_image0022

2:大于3case且连续方式的情况

构造跳转表,从小到大自己排序好。

3

clip_image003

clip_image0044

3:不连续的情况:

1):轻微不连续(少一项)

则少的那一项变成default的地址:

2):严重不连续

一:把高度树变成宽度树。

5

clip_image005

clip_image0066

二:生成二成表

7

clip_image007

clip_image0088

原文地址:https://www.cnblogs.com/w413133157/p/1651975.html