嵌入式100题(90):嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?...

嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

  一、while(1) { }

  1. 没有划定初始化、更新区域的代码块(位置)。这两项代码的书写,就由作者来随意设置(完成)。后人接手程序,就要花精力查找,无形中增添了工作量。
  2. 用圆括号括起的判断部分,要求的不是代码块,而是一个,仅一个表达式。这就要求每次判断,都要执行这个表达式,以求得表达式的值,来决定是否继续执行循环。换句话,每次循环之前,都必须执行一次这个表达式。

  二、for(;;) { }

  1. 清楚划定初始化、判断区、更新区域的代码块(位置),后人接手程序,就不必再花精力查找,无形中减轻了工作量。
  2. 判断区里要求的是 代码块,如果要无条件循环,只需置其为空,与 while 循环相比,节省了一次执行表达式的操作。
  3. 这就是我偏爱 for 循环的原因。
  4. 中间没条件就无限循环。

区别:

  for(;;) {   } 要比 while(1) {  } 的优势是:for 里面为空,编译执行之后没有判断的语句,而 while(1)始终都会有执行判断 1 = true,所以在单片机这种低速的、内存资源不多的环境,for(;;)是更好的选择。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

角色人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值