新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機C語言編程格式

        基于單片機C語言編程格式

        作者: 時間:2016-11-20 來源:網絡 收藏
        1. 凡是注解均用如下長度的字符數,此數是正常情況下在keil中A4紙的打印長度(105個字符),在word中設置左右邊距為1.0cm。

        //

        本文引用地址:http://www.104case.com/article/201611/318718.htm

        2. 文件頭的格式:

        /*
        * Company Name
        * Address
        *
        * (c) Copyright 20xx, Company Name, City, State
        * All Rights Reserved
        *
        *
        * FileName :
        * Version :
        * Programmer(s) :
        * Description :
        *
        *
        */

        3. 函數頭的格式:

        /*
        * FunctionName :
        * Description :
        * EntryParameter :
        * ReturnValue :
        */

        4. 文件結束格式:

        /*
        * End Of File
        */

        5. 文件管理:

        對于文件的管理來說,應把每一個程序模塊分成兩份。一個是C語言源代碼,一個對應的頭文件,且放在一個文件夾中。
        例如,關于LCD1602的驅動模塊,應該分為LCD1602.C和LCD1602.H,并放在LCD1602文件夾中。LCD1602.C中包含的是驅動程序
        的源代碼,盡量做到與移植無關;LCD1602.H中應該包含函數的申明部分、宏定義、全局變量的申明接管腳定義等,也就是
        與移植相關的部分。
        對于main.c函數應該對于config.h頭文件。main.c中為應用程序的主程序部分,負責把各個模塊聯系起來;而config.h頭
        文件為整個系統的配置文件,里邊除了編寫不依賴于編譯器的數據類型的定義外,還應該把整個工程需要的所有程序模塊均包含進來,這樣每一個程序
        模塊中都只需要包含config.h頭文件即可。

        6. 命名規則:

        A. 函數命名:
        函數名均由大寫字母開頭,單詞之間也應用大寫區別,為了移植以后程序模塊的函數名不重復,應在程序模塊的每一個函數名中加上模塊名。如: LCDWriteData(),LCD表示液晶模塊,WriteData寫數據到液晶模塊中。至于下劃線的帶與否,可以用與區分是函數的內部函數與否,也就是說,如果帶下劃線,表示為模塊內部函數,應用程序可能不需要調用,模塊內部調用;不帶下劃線表示為應用程序需要調用的函數。
        B. 變量命名:
        全局變量 -- 大寫字母開頭,并且加上文件名為變量前綴。
        局部變量 -- 小寫字母開頭,
        內部變量 -- 用簡單字母表示,如:循環用i,j,k等;指針 - p,字符 - c,字符串 - s。

        總結:形式參數 -- 在函數中應也小寫開頭;
        自動變量 -- 小寫字母;
        靜態變量 -- 大寫開頭;
        外部變量 -- 文件名開頭;
        函數命名 -- 文件名開頭。

        7. 注解規則:

        對于函數的注解均該應“//”來表示,而不是“//”。因為前者表示后,如果想把整段代碼注釋掉只要加上后者,但如果一開始就用了后者,再想注釋掉整段代碼就比較麻煩了。注解應該對齊,如果一行寫不下,可以寫在代碼的前面一行,也可以在后面一行繼續編寫。

        8. 代碼編寫格式:

        對于代碼的編寫格式,將嚴格按照《c語言編程規范》來編寫。

        9. 宏的定義:

        常數和宏定義要用全大寫表示,單詞之間可以用下劃線分割開。十六進制要用“0x”開頭,其后的字母一定要用大寫表示。如果是定義的是常量不需要加括號,但是表示的是一個或更多的語句時應該加上括號,而要替代的表達式均應加括號。如:

        #define KEY_FF (0x0F) // 常量定義,常量后不加括號,表達式加括號
        #define KEY_BUF_FULL() (KeyNRd > 0) // 語句應加括號

        10. 數據類型:

        typedef unsigned char Boolean; // Boolean 位變量
        typedef unsigned char uint8; // defined for unsigned 8-bits integer variable 無符號8位整型變量
        typedef signed char int8; // defined for signed 8-bits integer variable 有符號8位整型變量
        typedef unsigned short uint16; // defined for unsigned 16-bits integer variable 無符號16位整型變量
        typedef signed short int16; // defined for signed 16-bits integer variable 有符號16位整型變量
        typedef unsigned int uint32; // defined for unsigned 32-bits integer variable 無符號32位整型變量
        typedef signed int int32; // defined for signed 32-bits integer variable 有符號32位整型變量
        typedef float fp32; // single precision floating point variable (32bits) 單精度浮點數(32位長度)
        typedef double fp64; // double precision floating point variable (64bits) 雙精度浮點數(64位長度)

        11. 局部變量:

        一些程序模塊會用到局部變量,這些局部變量只用于這個模塊中,應將這些局部變量隱藏起來,不讓別的文件看到。則應該在這寫變量前加上static關鍵字實現。

        12. 括號應用:

        在多個運算符存在的條件下,應該應用括號,避免優先級的錯誤及閱讀方便。如:

        ssY = ssM * ssX + ssB; 應寫成 : ssY = ((ssM * ssX) + ssB);

        13. 真假定義:

        當定義邏輯對立面時,基于原始的陳述,以宏的方式,首先定義其中一種邏輯情形,然后再定義相反的另一種情形。

        #define TRUE (1)
        #define FALSE (!TRUE)



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南开区| 南京市| 桃园县| 万山特区| 疏附县| 盐边县| 大厂| 大姚县| 南乐县| 临洮县| 安化县| 唐山市| 余干县| 榆中县| 榆社县| 万安县| 喜德县| 仪征市| 栖霞市| 保康县| 南漳县| 西乌珠穆沁旗| 板桥市| 普格县| 丰顺县| 马龙县| 阿克苏市| 五指山市| 都匀市| 南陵县| 太仆寺旗| 峨山| 习水县| 延吉市| 攀枝花市| 津南区| 二连浩特市| 藁城市| 开原市| 黄梅县| 得荣县|