|
|
|
|
 关于switch...case...的编译行为. - tchaikovsky [ 2008-02-28 11:05 | 75 byte(s)]
 Re: 关于switch...case...的编译行为. - tchaikovsky [ 2008-03-03 13:14 | 218 byte(s)]
 Re: 关于switch...case...的编译行为. - IN_FLAMES [ 2008-03-03 16:28 | 47 byte(s)]
 Re: 关于switch...case...的编译行为. - tchaikovsky [ 2008-03-04 17:15 | 72 byte(s)]
 Re: 关于switch...case...的编译行为. - kernelworld [ 2008-03-04 22:19 | 189 byte(s)]
 Re: 关于switch...case...的编译行为. - archprog [ 2008-02-28 14:39 | 33 byte(s)]
 Re: 关于switch...case...的编译行为. - tchaikovsky [ 2008-02-28 16:31 | 26 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
|
现在自己解决了.通过反汇编生成的代码,发现两个版本对switch...case的处理不一样, 老版本采用if...else...的方式处理switch...case,这样处理效率比较低.新版采用跳转表的方还是来是实现,运行的时候通过查找跳转表来匹配case项,效率较高
|
|
|
----
醉生梦死
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
如果你不优化看一下会怎么样的,
我是记得在词法分析器时,会用case中的进行反填回地址,
当进行分支跳转时就会根据反填地址进行跳转,
如果是进行了优化则可能是用IF-ELES了
|
|
|
----
诗圣曰:语不惊人死不休 我亦曰:技不动人死不休
|
|
[Original]
[Print]
[Top]
|
|
|