C++:关于while与for的选择

本文探讨了在编程中使用`while(true)`和`for(;;)`两种无限循环方式,并通过比较它们的汇编代码来分析效率。结果显示,`for(;;)`在指令数、寄存器占用和无判断跳转方面具有优势。作者推荐了一个在线C++编译器,允许用户查看编译后的汇编代码,以加深对这两种循环结构理解。
摘要由CSDN通过智能技术生成

友友们,好久不见!
1、很多人在用无限循环时一般采用while(true),例如以下代码:

while(true)//while()
{
	cout<<"are you pig?"<<endl;		
}

也许你可能没有想到

for(;;)
{
  ……
}

也可以实现该功能。
那么问题来了,我们应该选择while(true)还是for(;;)
2、关于for(;;)与while(true)的比较
请看两者编译后的汇编代码:
(1)while(true)

mov eax,1
test eax,eax
je foo+23h
jmp foo+18h

(2)for(;;)

jmp foo+23h

由上可知:
显然,for (;;)指令少,不占用寄存器,而且没有判断、跳转,比while (1)好。
so,你知道答案了吗
今天特意给大家推荐一个特别强的在线编译器,而且还可以看到其对应的汇编语言,心动了吗?网址如下:
c++在线编译器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值