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

C++ 虚函数 虚表 virtual table | 浅谈虚函数与虚表(virtual table)

C++ 虚函数 虚表 virtual table

 

以前在百度空间写的两篇文章

 

浅谈虚函数与虚表(virtual table):

http://hi.baidu.com/00bin0/blog/item/55847fe8cfaaa63f2cf534c7.html

 

浅谈虚函数与虚表(virtual table)(二):

http://hi.baidu.com/00bin0/blog/item/14c1998dc8a5c705c9fc7ac0.html

 

请大侠斧正…