04. switch跳转表简单分析
监视窗口可以输入变量名,可对其取地址,可将监视的对象拖到内存窗口查看。vs2019中也可输入函数求值,例如调用strlen和自定义的Add函数。
if - else分支排在前面的优先判断,预计经常发生的情况可以放在前面,提高命中率。
switch - case每个分支访问代价均等,效率相同
switch语句会将跳转地址按顺序排在数组中,以传入的值为下标,取出数组里的数据,跳转到此地址执行代码,且有一条单独的ja xxxxxxxx语句跳转到default。如果case的数字从0开始且连续,则满足此理想情况。如果case里的值较大,则减去某个值修剪一下。如果case值有间隔但又不算太大,则将对应的“空隙”填充为default的跳转地址。