<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C51編程規(guī)范

          單片機(jī)C51編程規(guī)范

          作者: 時(shí)間:2011-05-05 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/172813.htm

          編制函數(shù)的基本原則:
          l 單個(gè)函數(shù)的規(guī)模盡量限制在200行以內(nèi)(不包括注釋和空行)。一個(gè)函數(shù)只完成一個(gè)功能。
          l 函數(shù)局部變量的數(shù)目一般不超過(guò)5~10個(gè)。
          l 函數(shù)內(nèi)部局部變量定義區(qū)和功能實(shí)現(xiàn)區(qū)(包含變量初始化)之間空一行。
          l 函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。通常使用動(dòng)賓詞組為執(zhí)行某操作的函數(shù)命名。
          l 函數(shù)的返回值要清楚明了,尤其是出錯(cuò)返回值的意義要準(zhǔn)確無(wú)誤。
          l 不要把與函數(shù)返回值類型不同的變量,以編譯系統(tǒng)默認(rèn)的轉(zhuǎn)換方式或強(qiáng)制的轉(zhuǎn)換方式作為返回值返回。
          l 減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。
          l 盡量不要將函數(shù)的參數(shù)作為工作變量。

          7.2 函數(shù)定義
          l 函數(shù)若沒(méi)有入口參數(shù)或者出口參數(shù),應(yīng)用void明確申明。
          l 函數(shù)名稱與出口參數(shù)類型定義間應(yīng)該空一格且只空一格。
          l 函數(shù)名稱與括號(hào)()之間無(wú)空格。
          l 函數(shù)形參必須給出明確的類型定義。
          l 多個(gè)形參的函數(shù),后一個(gè)形參與前一個(gè)形參的逗號(hào)分割符之間添加一個(gè)空格。
          l 函數(shù)體的前后花括號(hào){} 各獨(dú)占一行。

          7.3 局部變量定義
          l 同一行內(nèi)不要定義過(guò)多變量。
          l 同一類的變量在同一行內(nèi)定義,或者在相鄰行定義。
          l 先定義data型變量,再定義idtata型變量,再定義xdata型變量.
          l 數(shù)組、指針等復(fù)雜類型的定義放在定義區(qū)的最后。
          l 變量定義區(qū)不做較復(fù)雜的變量賦值。

          7.4 功能實(shí)現(xiàn)區(qū)
          l 一行只寫(xiě)一條語(yǔ)句。
          l 注意運(yùn)算符的優(yōu)先級(jí),并用括號(hào)明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級(jí)。
          l 各程序段之間使用一個(gè)空行分隔,加以必要的注釋。程序段指能完一個(gè)較具體的功能的一行或多行代碼。程序段內(nèi)的各行代碼之間相互依賴性較強(qiáng)。
          l 不要使用難懂的技巧性很高的語(yǔ)句。
          l 源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。
          l 完成簡(jiǎn)單功能、關(guān)系非常密切的一條或幾條語(yǔ)句可編寫(xiě)為函數(shù)或定義為宏。

          8 -排版

          8.1 縮進(jìn)
          代碼的每一級(jí)均往右縮進(jìn)4個(gè)空格的位置。

          8.2 分行
          過(guò)長(zhǎng)的語(yǔ)句(超過(guò)80個(gè)字符)要分成多行書(shū)寫(xiě);長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首,劃分出的新行要進(jìn)適當(dāng)?shù)目s進(jìn),使排版整齊,語(yǔ)句可讀。避免把注釋插入分行中。

          8.3 空行
          l 文件注釋區(qū)、頭文件引用區(qū)、函數(shù)間應(yīng)該有且只有一行空行。
          l 相鄰函數(shù)之間應(yīng)該有且只有一行空行。
          l 函數(shù)體內(nèi)相對(duì)獨(dú)立的程序塊之間可以用一行空行或注釋來(lái)分隔。
          l 函數(shù)注釋和對(duì)應(yīng)的函數(shù)體之間不應(yīng)該有空行。
          l 文件末尾有且只有一行空行。

          8.4 空格
          l 函數(shù)語(yǔ)句尾部或者注釋之后不能有空格。
          l 括號(hào)內(nèi)側(cè)(即左括號(hào)后面和右括號(hào)前面)不加空格,多重括號(hào)間不加空格。
          l 函數(shù)形參之間應(yīng)該有且只有一個(gè)空格(形參逗號(hào)后面加空格)。
          l 同一行中定義的多個(gè)變量間應(yīng)該有且只有一個(gè)空格(變量逗號(hào)后面加空格)。
          l 表達(dá)式中,若有多個(gè)操作符連寫(xiě)的情況,應(yīng)使用空格對(duì)它們分隔:
          在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行對(duì)等操作時(shí),它們之間的操作符前后均加一個(gè)空格;在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行非對(duì)等操作時(shí),其前后均不應(yīng)加空格;
          逗號(hào)只在后面加空格;
          雙目操作符,如比較操作符, 賦值操作符=、+=,算術(shù)操作符+、%,邏輯操作符、,位操作符、^等,前后均加一個(gè)空格;
          單目操作符,如!、~、++、-、(地址運(yùn)算符)等,前后不加空格;
          ->、.前后不加空格;
          if、for、while、switch等關(guān)鍵字與后面的括號(hào)間加一個(gè)空格;

          8.5 花括號(hào)
          l if、else if、else、for、while語(yǔ)句無(wú)論其執(zhí)行體是一條語(yǔ)句還是多條語(yǔ)句都必須加花括號(hào),且左右花括號(hào)各獨(dú)占一行。
          l do{}while()結(jié)構(gòu)中,do和{均各占一行,}和while();共同占用一行。
          if ( ) do
          { {

          } }while( );
          else
          {

          }



          關(guān)鍵詞: 規(guī)范 編程 C51 單片機(jī)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();