新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 談談C51的編程規范

        談談C51的編程規范

        作者: 時間:2011-02-27 來源:網絡 收藏

        現在的程序設計,C51已經得到廣泛的推廣和應用,算是的主流設計程序,甚至可以說作為開發人員必須要掌握的一門語言了。

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

        一、注釋

        1,采用中文;
        2,開始的注釋:

        文件(模塊)注釋內容:
        公司名稱、版權、作者名稱、修改時間、模塊功能、背景介紹等,復雜的算法需要加上流程說明;

        比如:

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

        /*創 建 人:zhaojunjie 日期:2001-06-08 */



        /*版 本:

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

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

        3、程序中的注釋內容:

        修改時間和作者、方便理解的注釋等。注釋內容應簡煉、清楚、明了,一目了然的語句不加注釋。

        二、命名:

        命名必須具有一定的實際意義。

        1、常量的命名:全部用大寫。

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

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

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

        三、編輯風格

        1、縮進:縮進以 Tab 為單位,一個 Tab 為四個空格大小。預處理語句、全局數據、函數原型、標題、附加說明、函數說明、標號等均頂格書寫。語句塊的“{”“}”配對對齊,并與其前一行對齊;

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

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

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

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

        6、形參:在定義函數時,在函數名后面括號中直接進行形式參數說明,不再另行說明。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁强县| 田东县| 石林| 荥阳市| 谢通门县| 会泽县| 宿松县| 波密县| 涞水县| 庐江县| 茶陵县| 宜章县| 阿坝县| 延安市| 达孜县| 罗定市| 瓮安县| 洱源县| 越西县| 驻马店市| 孟州市| 方正县| 依安县| 北宁市| 若尔盖县| 珠海市| 闽清县| 手机| 仁化县| 博客| 韶关市| 白沙| 滨州市| 新源县| 克山县| 汝南县| 钟山县| 台江县| 磴口县| 法库县| 阿鲁科尔沁旗|