嵌入式100題(90):嵌入式系統中經常要用到無限循環,你怎么樣用C編寫死循環呢?


嵌入式系統中經常要用到無限循環,你怎么樣用C編寫死循環呢?

  一、while(1) { }

  1. 沒有划定初始化、更新區域的代碼塊(位置)。這兩項代碼的書寫,就由作者來隨意設置(完成)。后人接手程序,就要花精力查找,無形中增添了工作量。
  2. 用圓括號括起的判斷部分,要求的不是代碼塊,而是一個,僅一個表達式。這就要求每次判斷,都要執行這個表達式,以求得表達式的值,來決定是否繼續執行循環。換句話,每次循環之前,都必須執行一次這個表達式。

  二、for(;;) { }

  1. 清楚划定初始化、判斷區、更新區域的代碼塊(位置),后人接手程序,就不必再花精力查找,無形中減輕了工作量。
  2. 判斷區里要求的是 代碼塊,如果要無條件循環,只需置其為空,與 while 循環相比,節省了一次執行表達式的操作。
  3. 這就是我偏愛 for 循環的原因。
  4. 中間沒條件就無限循環。

區別:

  for(;;) {   } 要比 while(1) {  } 的優勢是:for 里面為空,編譯執行之后沒有判斷的語句,而 while(1)始終都會有執行判斷 1 = true,所以在單片機這種低速的、內存資源不多的環境,for(;;)是更好的選擇。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM