当前位置: 代码迷 >> C语言 >> [求助] 哪个循环的速度更快?为什么呢?
  详细解决方案

[求助] 哪个循环的速度更快?为什么呢?

热度:442   发布时间:2007-11-12 13:49:56.0
以下是引用neverTheSame在2007-11-12 13:38:28的发言:

我做过如下测试:
int main(void)
{
int i;
i=0x1111;
i++;
i=0x1111;
i--;
}
反汇编为:
13F4:01FE BE1111 MOV SI,1111
13F4:0201 46 INC SI
13F4:0202 BE1111 MOV SI,1111
13F4:0205 4E DEC SI

请问你用的是什么反汇编工具啊?我最近正在学习汇编,想看看c写的程序都被汇编成啥样了
----------------解决方案--------------------------------------------------------
我比较了一下

for(i=0;i<10;i++)
for(i=0;i!=10;i++)
for(i=0;i<10;++i)

这三种写法的速度都差不多
----------------解决方案--------------------------------------------------------
for(i=0;i<10;i++)
for(i=10;i;i--)

关键在这...
----------------解决方案--------------------------------------------------------

回复:(I喜欢c)[em13]不会吧!我曾经在书上看到说i...
难道不是一样快吗 这与C语言算法有关吗?
----------------解决方案--------------------------------------------------------
其他编译器速度差不多,vc的编译器有点奇怪
----------------解决方案--------------------------------------------------------
加法指令本来就比相应的减法指令要简单
----------------解决方案--------------------------------------------------------
减法指令应该先做补码再做加法指令.
所以要比加的多做一步.
----------------解决方案--------------------------------------------------------
以下是引用永夜的极光在2007-11-12 13:49:56的发言:

请问你用的是什么反汇编工具啊?我最近正在学习汇编,想看看c写的程序都被汇编成啥样了

把生成的可执行文件用debug调入,再用u命令显示即可.
不用什么反汇编工具.


----------------解决方案--------------------------------------------------------
我用vc写了一段程序
#include <stdio.h>
int main()
{
int i;
i=1;
i++;
return 0;
}
编译运行后,生成的1.exe复制到了c盘根目录

然后用debug c:\1.exe和U命令,看到的是
-u
0D02:0000 0E PUSH CS
0D02:0001 1F POP DS
0D02:0002 BA0E00 MOV DX,000E
0D02:0005 B409 MOV AH,09
0D02:0007 CD21 INT 21
0D02:0009 B8014C MOV AX,4C01
0D02:000C CD21 INT 21
0D02:000E 54 PUSH SP
0D02:000F 68 DB 68
0D02:0010 69 DB 69
0D02:0011 7320 JNB 0033
0D02:0013 7072 JO 0087
0D02:0015 6F DB 6F
0D02:0016 67 DB 67
0D02:0017 7261 JB 007A
0D02:0019 6D DB 6D
0D02:001A 206361 AND [BP+DI+61],AH
0D02:001D 6E DB 6E
0D02:001E 6E DB 6E
0D02:001F 6F DB 6F

跟我的程序没啥关系啊,麻烦教教我怎么办
----------------解决方案--------------------------------------------------------

我 只听说 ++i 比 i++ 快
当然--i也比i--快


----------------解决方案--------------------------------------------------------
  相关解决方案