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

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

  一、while(1) { }

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

  二、for(;;) { }

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

区别:

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

  

posted @ 2021-03-02 17:09  角色人生  阅读(1101)  评论(0编辑  收藏  举报