摘要:
前两天在实验室翻书,看到《深入理解计算机系统》开头一章提到了一个问题,switch语句和if else 的效率一样么?Why?顿时萌生了很大的兴趣,准备一搞。不过google一下,发现别人的博客里面讲的也差不多了,我就学习下吧-_-简而言之,switch语句在case 里面的取值比较集中的情况下,如 case 1, case 3, case 4, case 5 ... 会构造一个地址表,地址表里面记录了依次应该跳转的标号,jmp的时候,就将switch()的变量减去最小值,获取比地址表里面的偏移量,然后将对应偏移量的地址作为jmp的目的地值。O(e)的复杂度啊。如果分部比较稀疏的话,1) ca 阅读全文