while和for的效率c语言,【C语言】while与for实施效率对比【转】

本文通过C语言编译器Microsoft Visual C++ 6.0 (SP6) 对while和for循环进行效率对比,分析了两种循环在不同情况下的汇编指令数量。结果显示,在特定情况下,while和for循环的执行效率相近,具体取决于循环结构的实现方式。对于for循环,采用传统写法和优化写法(如for(;(num--)>0;))的指令数量分别与while循环进行了比较,发现优化后的for循环与while循环效率相当。因此,不能简单认为for循环比while循环慢,应根据实际代码结构来评估效率。
摘要由CSDN通过智能技术生成

【C语言】while与for执行效率对比【转】

【C语言】while与for执行效率对比【转】

C语言编译环境: Microsoft Visual C++ 6.0(SP6)

测试程序

C代码

230638650.png

#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  ------------------------------------------------------

汇编指令代码

230638650.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值