i+=4;的执行效率比i=i+4;高

作者在 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上.

我的C语言编程经验 | 阅读 2072 次
文章评论,共0条
游客请输入验证码