作者在 2007-11-13 00:28:00 发布以下内容
在C语言中有些语句可以用同等效果的语句代替,它的执行效率会提高很多.
i=i+4;在C语言中编译链接成可执行文件时的汇编指令如下:
13F5:0201 8BC6 MOV AX,SI
13F5:0203 050400 ADD AX,0004
13F5:0206 8BF0 MOV SI,AX
而i+=4;的汇编指令为:
13F5:020B 83C604 ADD SI,+04
由此可见,一条i+=4;就是一条指令,而i=i+4;是三条指令.
这很明显效率提高很多.
我们再来分析一下出现这种情况的原因是什么.
i=i+4;在编译器编译时,先将i+4的结果保存起来,然后再将结果赋给i.
i+=4;在编译器编译时,就直接将4加到i上.