www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]  為了提高源程序的質(zhì)量和可維護(hù)性,從而最終提高軟件產(chǎn)品生產(chǎn)力,特編寫此規(guī)范。本標(biāo)準(zhǔn)規(guī)定了程序設(shè)計(jì)人員進(jìn)行程序設(shè)計(jì)時(shí)必須遵循的規(guī)范。本規(guī)范主要針對(duì)單片機(jī)編程語言和08編譯器而言,包括排版、注釋、命名、變

  為了提高源程序的質(zhì)量和可維護(hù)性,從而最終提高軟件產(chǎn)品生產(chǎn)力,特編寫此規(guī)范。本標(biāo)準(zhǔn)規(guī)定了程序設(shè)計(jì)人員進(jìn)行程序設(shè)計(jì)時(shí)必須遵循的規(guī)范。本規(guī)范主要針對(duì)單片機(jī)編程語言和08編譯器而言,包括排版、注釋、命名、變量使用、代碼可測性、程序效率、質(zhì)量保證等內(nèi)容。

1.基本規(guī)則

  格式清晰、注釋簡明扼要、命名規(guī)范易懂、函數(shù)模塊化、程序易讀易維護(hù)、功能準(zhǔn)確實(shí)現(xiàn)、代碼空間效率和時(shí)間效率高、適度的可擴(kuò)展性、單片機(jī)編程規(guī)范-標(biāo)識(shí)符命名。

2.標(biāo)識(shí)符命名

  2.1命名基本原則

  (1)命名清晰明了,有明確含義,使用完整單詞或約定俗成的縮寫。通常,較短的單詞可通過去掉元音字母形成縮寫;較長的單詞可取單詞的頭幾個(gè)字母形成縮寫。即"見名知意"。

 ?。?)命名風(fēng)格要自始至終保持一致。

 ?。?)命名中若使用特殊約定或縮寫,要有注釋說明。

 ?。?)同一軟件產(chǎn)品內(nèi)模塊之間接口部分的標(biāo)識(shí)符名稱之前加上模塊標(biāo)識(shí)。

 2.2宏和常量命名

  宏和常量用全部大寫字母來命名,詞與詞之間用下劃線分隔。對(duì)程序中用到的數(shù)字均應(yīng)用有意義的枚舉或宏來代替。

 2.3變量命名

  變量名用小寫字母命名,每個(gè)詞的第一個(gè)字母大寫。類型前綴(u8s8 etc.)全局變量另加前綴g_。

  局部變量應(yīng)簡明扼要。局部循環(huán)體控制變量優(yōu)先使用i、j、k等;局部長度變量優(yōu)先使用len、num等;臨時(shí)中間變量優(yōu)先使用temp、tmp等。

 2.4函數(shù)命名

  函數(shù)名用小寫字母命名,每個(gè)詞的第一個(gè)字母大寫,并將模塊標(biāo)識(shí)加在最前面。

 2.5文件命名

  一個(gè)文件包含一類功能或一個(gè)模塊的所有函數(shù),文件名稱應(yīng)清楚表明其功能或性質(zhì)。每個(gè).c文件應(yīng)該有一個(gè)同名的.h文件作為頭文件。

3.注釋

 3.1注釋基本原則

  有助于對(duì)程序的閱讀理解,說明程序在"做什么",解釋代碼的目的、功能和采用的方法。一般情況源程序有效注釋量在30%左右。注釋語言必須準(zhǔn)確、易懂、簡潔。邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,不再有用的注釋要?jiǎng)h除。匯編和C中都用"http://",取消";"不使用段注釋" /**/ "(調(diào)試時(shí)可用)

 3.2文件注釋

  文件注釋必須說明文件名、函數(shù)功能、創(chuàng)建人、創(chuàng)建日期、版本信息等相關(guān)信息。修改文件代碼時(shí),應(yīng)在文件注釋中記錄修改日期、修改人員,并簡要說明此次修改的目的。所有修改記錄必須保持完整。文件注釋放在文件頂端,用"/*……*/"格式包含。注釋文本每行縮進(jìn)4個(gè)空格;每個(gè)注釋文本分項(xiàng)名稱應(yīng)對(duì)齊。

/***********************************************************

文件名稱:

作者:

版本:

說明:

修改記錄:

***********************************************************/

3.3函數(shù)注釋

3.3.1函數(shù)頭部注釋

  函數(shù)頭部注釋應(yīng)包括函數(shù)名稱、函數(shù)功能、入口參數(shù)、出口參數(shù)等內(nèi)容。如有必要還可增加作者、創(chuàng)建日期、修改記錄(備注)等相關(guān)項(xiàng)目。函數(shù)頭部注釋放在每個(gè)函數(shù)的頂端,用"/*……*/"的格式包含。其中函數(shù)名稱應(yīng)簡寫為Name(),不加入、出口參數(shù)等信息。

/***********************************************************

函數(shù)名稱:

函數(shù)功能:

入口參數(shù):

出口參數(shù):

備注:

***********************************************************/

3.3.2代碼注釋

代碼注釋應(yīng)與被注釋的代碼緊鄰,放在其上方或右方,不可放在下面。如放于上方則需與其上面的代碼用空行隔開。一般少量注釋應(yīng)該添加在被注釋語句的行尾,一個(gè)函數(shù)內(nèi)的多個(gè)注釋左對(duì)齊;較多注釋則應(yīng)加在上方且注釋行與被注釋的語句左對(duì)齊。函數(shù)代碼注釋用"http://…//"的格式。

通常,分支語句(條件分支、循環(huán)語句等)必須編寫注釋。其程序塊結(jié)束行"}"的右方應(yīng)加表明該程序塊結(jié)束的標(biāo)記"end of……",尤其在多重嵌套時(shí)。

3.4變量、常量、宏的注釋

同一類型的標(biāo)識(shí)符應(yīng)集中定義,并在定義之前一行對(duì)其共性加以統(tǒng)一注釋。對(duì)單個(gè)標(biāo)識(shí)符的注釋加在定義語句的行尾。全局變量一定要有詳細(xì)的注釋,包括其功能、取值范圍、哪些函數(shù)或過程存取它以及存取時(shí)的注意事項(xiàng)等。注釋用"http://…//"的格式。

4.函數(shù)

4.1函數(shù)設(shè)計(jì)原則

函數(shù)的基本要求:

    1)封裝性

    1)正確性:程序要實(shí)現(xiàn)設(shè)計(jì)要求的功能。

    2)穩(wěn)定性和安全性:程序運(yùn)行穩(wěn)定、可靠、安全。

    3)可測試性:程序便于測試和評(píng)價(jià)。

    4)規(guī)范/可讀性:程序書寫風(fēng)格、命名規(guī)則等符合規(guī)范。

    5)擴(kuò)展性:代碼為下一次升級(jí)擴(kuò)展留有空間和接口。

    6)全局效率:軟件系統(tǒng)的整體效率高。

    7)局部效率:某個(gè)模塊/子模塊/函數(shù)的本身效率高。

編制函數(shù)的基本原則:

    1)單個(gè)函數(shù)的規(guī)模盡量限制在200行以內(nèi)(不包括注釋和空行)。一個(gè)函數(shù)只完成一個(gè)功能。

    2)函數(shù)局部變量的數(shù)目一般不超過5~10個(gè)。

    3)函數(shù)內(nèi)部局部變量定義區(qū)和功能實(shí)現(xiàn)區(qū)(包含變量初始化)之間空一行。

    4)函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。通常使用動(dòng)賓詞組為執(zhí)行某操作的函數(shù)命名。

    5)函數(shù)的返回值要清楚明了,尤其是出錯(cuò)返回值的意義要準(zhǔn)確無誤。

    6)不要把與函數(shù)返回值類型不同的變量,以編譯系統(tǒng)默認(rèn)的轉(zhuǎn)換方式或強(qiáng)制的轉(zhuǎn)換方式作為返回值返回。

    7)減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。

    8)盡量不要將函數(shù)的參數(shù)作為工作變量。

4.2函數(shù)定義

    1)函數(shù)若沒有入口參數(shù)或者出口參數(shù),應(yīng)用void明確申明。

    2)函數(shù)名稱與出口參數(shù)類型定義間應(yīng)該空一格且只空一格。

    3)函數(shù)名稱與括號(hào)()之間無空格。

    4)函數(shù)形參必須給出明確的類型定義。

    5)多個(gè)形參的函數(shù),后一個(gè)形參與前一個(gè)形參的逗號(hào)分割符之間添加一個(gè)空格。

    6)函數(shù)體的前后花括號(hào)"{}"各獨(dú)占一行。

4.3局部變量定義

    1)同一行內(nèi)不要定義過多變量。

    2)同一類的變量在同一行內(nèi)定義,或者在相鄰行定義。

    3)先定義data型變量,再定義idtata型變量,再定義xdata型變量.(?)

    4)數(shù)組、指針等復(fù)雜類型的定義放在定義區(qū)的最后。

    5)變量定義區(qū)不做較復(fù)雜的變量賦值。

4.4功能實(shí)現(xiàn)區(qū)規(guī)范

    1)一行只寫一條語句。

    2)注意運(yùn)算符的優(yōu)先級(jí),并用括號(hào)明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級(jí)。

    3)各程序段之間使用一個(gè)空行分隔,加以必要的注釋。程序段指能完一個(gè)較具體的功能的一行或多行代碼。程序段內(nèi)的各行代碼之間相互依賴性較強(qiáng)。(1、2、3方式)

    4)不要使用難懂的技巧性很高的語句。

    5)源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。

    6)完成簡單功能、關(guān)系非常密切的一條或幾條語句可編寫為函數(shù)或定義為宏。

5.單片機(jī)編程規(guī)范-排版

  5.1縮進(jìn)

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

  5.2分行

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

5.3空行

    1)文件注釋區(qū)、頭文件引用區(qū)、函數(shù)間應(yīng)該有且只有一行空行。

    2)相鄰函數(shù)之間應(yīng)該有且只有一行空行。

    3)函數(shù)體內(nèi)相對(duì)獨(dú)立的程序塊之間可以用一行空行或注釋來分隔。

    4)函數(shù)注釋和對(duì)應(yīng)的函數(shù)體之間不應(yīng)該有空行。

    5)文件末尾有且只有一行空行。

5.4空格

    1)函數(shù)語句尾部或者注釋之后不能有空格。

    2)括號(hào)內(nèi)側(cè)(即左括號(hào)后面和右括號(hào)前面)不加空格,多重括號(hào)間不加空格。

    3)函數(shù)形參之間應(yīng)該有且只有一個(gè)空格(形參逗號(hào)后面加空格)。

    4)同一行中定義的多個(gè)變量間應(yīng)該有且只有一個(gè)空格(變量逗號(hào)后面加空格)。

    5)表達(dá)式中,若有多個(gè)操作符連寫的情況,應(yīng)使用空格對(duì)它們分隔:

    6)在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行對(duì)等操作時(shí),它們之間的操作符前后均加一個(gè)空格;在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行非對(duì)等操作時(shí),其前后均不應(yīng)加空格;

    7)逗號(hào)只在后面加空格;

    8)雙目操作符,如比較操作符,賦值操作符"="、"+=",算術(shù)操作符"+"、"%",邏輯操作符"&&"、"&",位操作符"<<"、"^"等,前后均加一個(gè)空格;

    9)單目操作符,如"!"、"~"、"++"、"-"、"&"(地址運(yùn)算符)等,前后不加空格;

    10) "->"、"."前后不加空格;

    11) if、for、while、switch等關(guān)鍵字與后面的括號(hào)間加一個(gè)空格;

5.5花括號(hào)

    1)if、else if、else、for、while語句無論其執(zhí)行體是一條語句還是多條語句都必須加花括號(hào),且左右花括號(hào)各獨(dú)占一行。

2) do{}while()結(jié)構(gòu)中,"do"和"{"均各占一行,"}"和"while();"共同占用一行。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機(jī)在嵌入式設(shè)計(jì)領(lǐng)域已經(jīng)成為半個(gè)多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對(duì)新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨(dú)立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計(jì)與硬件實(shí)現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機(jī)燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對(duì)應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠(yuǎn)程升級(jí)等不同場景。...

關(guān)鍵字: 單片機(jī) ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時(shí)機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個(gè)維度,系統(tǒng)分析看門狗初始化的最佳實(shí)踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

本文中,小編將對(duì)單片機(jī)予以介紹,如果你想對(duì)它的詳細(xì)情況有所認(rèn)識(shí),或者想要增進(jìn)對(duì)它的了解程度,不妨請(qǐng)看以下內(nèi)容哦。

關(guān)鍵字: 單片機(jī) 開發(fā)板 Keil

隨著單片機(jī)系統(tǒng)越來越廣泛地應(yīng)用于消費(fèi)類電子、醫(yī)療、工業(yè)自動(dòng)化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機(jī)系統(tǒng)面臨著電磁干擾(EMI)日益嚴(yán)重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機(jī) 電磁兼容

以下內(nèi)容中,小編將對(duì)單片機(jī)的相關(guān)內(nèi)容進(jìn)行著重介紹和闡述,希望本文能幫您增進(jìn)對(duì)單片機(jī)的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機(jī) 復(fù)位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C(jī)的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機(jī) 異常復(fù)位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C(jī)的有關(guān)報(bào)道,通過閱讀這篇文章,大家可以對(duì)它具備清晰的認(rèn)識(shí),主要內(nèi)容如下。

關(guān)鍵字: 單片機(jī) 仿真器

單片機(jī)將是下述內(nèi)容的主要介紹對(duì)象,通過這篇文章,小編希望大家可以對(duì)它的相關(guān)情況以及信息有所認(rèn)識(shí)和了解,詳細(xì)內(nèi)容如下。

關(guān)鍵字: 單片機(jī) 中斷 boot

一直以來,單片機(jī)都是大家的關(guān)注焦點(diǎn)之一。因此針對(duì)大家的興趣點(diǎn)所在,小編將為大家?guī)韱纹瑱C(jī)的相關(guān)介紹,詳細(xì)內(nèi)容請(qǐng)看下文。

關(guān)鍵字: 單片機(jī) 數(shù)字信號(hào) 模擬信號(hào)
關(guān)閉