for while 循环 区别 汇编 | for循环与while循环在DEBUG环境下生成的汇编码的区别

for while 循环 区别 汇编

是否有听人讲过for while 循环会差一条汇编语句呢?

是否有人跟你说过while会比for快呢?

for 跟 while 生成的汇编码是否一样呢?

答案是,对,也不对。因为在DEBUG环境下,VS编译器为for 跟 while 循环生成的汇编代码确实有区别,for的确是多了一条跳转语句,但是,这仅仅是DEBUG环境下,在RELEASE版本里面,编译器会做各种优化,而且不同厂商的编译器还有不同的优化策略,所以,除非某人确切告诉你,他是从RELEASE版本下的EXE中逆向工程得到的汇编码里明确看到区别,不然别相信他。而且我猜测,RELEASE版本里不会有区别的(仅仅是我猜测,求大侠拍砖)。

好,那我们来看看DEBUG环境下差别在哪里,为什么会有这差别: Continue reading