【C语言】while与for执行效率对比【转】
【C语言】while与for执行效率对比【转】
C语言编译环境: Microsoft Visual C++ 6.0(SP6)
测试程序
C代码
#include "stdio.h"
voidforTest()
{
intnum = 1234;// 迭代次数
longsum = 0;// 保存加法结果
for(inti=0;i
{
sum = sum + i; // 计算结果
}
printf("forTest:%d\n",sum);
}
voidwhileTest()
{
intnum = 1234;// 迭代次数
longsum = 0;// 保存加法结果
while((num--)>0)
{
sum = sum + num; // 计算结果
}
printf("whileTest:%d\n",sum);
}
voidmain()
{
forTest();
whileTest();
}
汇编片段
whileTest()函数汇编后的指令:
--- D:\VC\ForWhile\ForWhile.cpp ------------------------------------------------------
汇编指令代码
17: void whileTest()
18: {
0040D760 push ebp
0040D761 mov ebp,esp
0040D763 sub esp,48h
0040D766 push ebx
0040D767 push esi
0040D768 push edi
0040D769 lea edi,[ebp-48h]
0040D76C mov ecx,12h
0040D771 mov eax,0CCCCCCCCh
0040D776 rep stos dword ptr [edi]
19: int num =1234;
0040D778 mov dword ptr [ebp-4],4D2h
20: long sum =0;
0040D77