<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > C51的編程規范說(shuō)明

C51的編程規范說(shuō)明

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

現在單片機的程序設計,已經(jīng)得到廣泛的推廣和應用,算是單片機的主流設計程序,甚至可以說(shuō)作為單片機開(kāi)發(fā)人員必須要掌握的一門(mén)語(yǔ)言了。

作為一門(mén)工具,最終的目的就是實(shí)現功能。在滿(mǎn)足這個(gè)前提條件下,我們希望我們的程序能很容易地被別人讀懂,或者能夠很容易地讀懂別人的程序,在團體合作開(kāi)發(fā)中就能起到事半功倍之效。在網(wǎng)上請求幫助時(shí),如能以的寫(xiě)法貼出程序,網(wǎng)友會(huì )比較容易地明白你的問(wèn)題,則會(huì )比較快的得到網(wǎng)友的幫助,否則讓人看上半天也不明所以然,這樣就達不到預期的效果了。因此,為了便于源程序的交流,減少合作開(kāi)發(fā)中的障礙,希望大家能夠探討一下。把各人認為好的建議提出來(lái),然后做一個(gè)總結,作為一種大家一致認同的,我認為將會(huì )是一件很有意義的事。我先提出一些自已的想法,以此拋磚引玉。

一、注釋

1,采用中文;
2,開(kāi)始的注釋?zhuān)?br />
文件(模塊)注釋內容:
公司名稱(chēng)、版權、作者名稱(chēng)、修改時(shí)間、模塊功能、背景介紹等,復雜的算法需要加上流程;

比如:
/***********************************************************/
/*公司名稱(chēng): */

/*模 塊 名: LCD 模塊 LCD 型號:HD44780 */

/*創(chuàng ) 建 人:zhaojunjie 日期:2001-06-08 */
/*修 改 人: 日期:2001-06-08 */
/*功能描述: */
/*其他: */
/*版 本:
/*************************************************************/

函數開(kāi)頭的注釋內容:
函數名稱(chēng)、功能、 輸入、返回、函數描述、流程處理、全局變量、調用樣例等,復雜的函數需要加上變量用途說(shuō)明;

/**************************************************************
*
* 函 數 名: v_LcdInit
* 功能描述: LCD初始化
* 函數說(shuō)明: 初始化命令:0x3c, 0x08, 0x01, 0x06, 0x10, 0x0c
* 調用函數: v_Delaymsec(),v_LcdCmd()
* 全局變量:
* 輸 入: 無(wú)
* 返 回: 無(wú)
* 設 計 者:zhao 日期:2001-12-09
* 修 改 者:zhao 日期:2001-12-09
* 版 本:
****************************************************************/

3、程序中的注釋內容:

修改時(shí)間和作者、方便理解的注釋等。注釋內容應簡(jiǎn)煉、清楚、明了,一目了然的語(yǔ)句不加注釋。

二、命名:

命名必須具有一定的實(shí)際意義。

1、常量的命名:全部用大寫(xiě)。

2、變量的命名:
變量名加前綴,前綴反映變量的數據類(lèi)型,用小寫(xiě),反映變量意義的第一個(gè)字母大寫(xiě),其他小寫(xiě)。
其中變量數據類(lèi)型:
unsigned char 前綴 uc signed char 前綴 sc
unsigned int 前綴 ui signed int 前綴 si
unsigned long 前綴 ul signed long 前綴 sl
bit 前綴 b 指針 前綴 p

例:ucReceivData 接收數據
3、結構體命名:

4、函數的命名:
函數名首字大寫(xiě),若包含有兩個(gè)單詞的每個(gè)單詞首字母大寫(xiě)。
函數原型說(shuō)明包括:引用外來(lái)函數及內部函數,外部引用必須在右側注明函數來(lái)源: 模塊名及文件名, 內部函數,只要注釋其定義文件名;

三、編輯風(fēng)格

1、縮進(jìn):縮進(jìn)以 Tab 為單位,一個(gè) Tab 為四個(gè)空格大小。預處理語(yǔ)句、全局數據、函數原型、標題、附加說(shuō)明、函數說(shuō)明、標號等均頂格書(shū)寫(xiě)。語(yǔ)句塊的“{”“}”配對對齊,并與其前一行對齊;

2、空格:數據和函數在其類(lèi)型,修飾名稱(chēng)之間適當空格并據情況對齊。關(guān)鍵字原則上空一格,如:
if ( ... ) 等,運算符的空格規定如下:“->”、“[”、“]”、“++”、“--”、“~”、“!”、“+”、“-”(指正負號),“”(取址或引用)、“*”(指使用指針時(shí))等幾個(gè)運算符兩邊不空格(其中單目運算符系指與操作數相連的一邊),其它運算符(包括大多數二目運算符和三目運算符“?:”兩邊均空一格,“(”、“)”運算符在其內側空一格,在作函數定義時(shí)還可據情況多空或不空格來(lái)對齊,但在函數實(shí)現時(shí)可以不用。“,”運算符只在其后空一格,需對齊時(shí)也可不空或多空格,對語(yǔ)句行后加的注釋?xiě)眠m當空格與語(yǔ)句隔開(kāi)并盡可能對齊。

3、對齊:原則上關(guān)系密切的行應對齊,對齊包括類(lèi)型、修飾、名稱(chēng)、參數等各部分對齊。另每一行的長(cháng)度不應超過(guò)屏幕太多,必要時(shí)適當換行,換行時(shí)盡可能在“,”處或運算符處,換行后最好以運算符打頭,并且以下各行均以該語(yǔ)句首行縮進(jìn),但該語(yǔ)句仍以首行的縮進(jìn)為準,即如其下一行為“{”應與首行對齊。

4、空行:程序文件結構各部分之間空兩行,若不必要也可只空一行,各函數實(shí)現之間一般空兩行

5、修改:版本封存以后的修改一定要將老語(yǔ)句用/* */ 封閉,不能自行刪除或修改,并要在文件及函數的修改記錄中加以記錄。

6、形參:在定義函數時(shí),在函數名后面括號中直接進(jìn)行形式參數說(shuō)明,不再另行說(shuō)明。

本文引用地址:http://dyxdggzs.com/article/172749.htm


關(guān)鍵詞: 說(shuō)明 規范 編程 C51

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>