本規(guī)范主要針對單片機(jī)編程語言和08編譯器而言,包括排版、注釋、命名、變量使用、代碼可測性、程序效率、質(zhì)量保證等內(nèi)容。 + L5 G* v/ d) T
1.基本規(guī)則 4 S0 C3 N! g9 H" W4 Q3 z% C
格式清晰、注釋簡明扼要、命名規(guī)范易懂、函數(shù)模塊化、程序易讀易維護(hù)、功能準(zhǔn)確實現(xiàn)、代碼空間效率和時間效率高、適度的可擴(kuò)展性、單片機(jī)編程規(guī)范-標(biāo)識符命名
% F* L/ K/ Q E. B2.標(biāo)識符命名 2.1 命名基本原則 3 r$ ^6 J3 D5 P( w
(1)命名清晰明了,有明確含義,使用完整單詞或約定俗成的縮寫。通常,較短的單詞可通過去掉元音字母形成縮寫;較長的單詞可取單詞的頭幾個字母形成縮寫。即"見名知意"。(2)命名風(fēng)格要自始至終保持一致。
8 f% F# K, c4 D2 @(3)命名中若使用特殊約定或縮寫,要有注釋說明。
3 v. |( Z' z5 a* [+ o& R. x. u; M(4)同一軟件產(chǎn)品內(nèi)模塊之間接口部分的標(biāo)識符名稱之前加上模塊標(biāo)識。" E4 Z) z0 Y' {- _: J' B
2.2 宏和常量命名
+ a9 h/ f! z1 E- x h宏和常量用全部大寫字母來命名,詞與詞之間用下劃線分隔。對程序中用到的數(shù)字均應(yīng)用有意義的枚舉或宏來代替。
6 t! v7 K5 G4 _8 |% G/ P) m2.3 變量命名
+ V6 M+ \- Q, j- a9 L7 |# }變量名用小寫字母命名,每個詞的第一個字母大寫。類型前綴(u8\s8 etc.)全局變量另加前綴g_。) s' z6 E/ S7 c# q% @2 h F
局部變量應(yīng)簡明扼要。局部循環(huán)體控制變量優(yōu)先使用i、j、k等;局部長度變量優(yōu)先使用len、num等;臨時中間變量優(yōu)先使用temp、tmp等。
+ d1 U: |3 ^2 Q$ V! H2 m2.4 函數(shù)命名
6 j% {& F4 z) O; h6 n- Q2 U函數(shù)名用小寫字母命名,每個詞的第一個字母大寫,并將模塊標(biāo)識加在最前面。9 E- j% s) {3 Y+ I2 k: b% w) A
2.5 文件命名 & n* n; m. Q2 @2 H3 f/ C& F
一個文件包含一類功能或一個模塊的所有函數(shù),文件名稱應(yīng)清楚表明其功能或性質(zhì)。9 Y3 `2 |1 N4 J K
每個.c文件應(yīng)該有一個同名的.h文件作為頭文件。
+ I8 s) a$ a+ v8 w7 t5 w- m% Z3.注釋 3.1 注釋基本原則 . |$ Y: I- L* P) q* h$ Y( b' K
有助于對程序的閱讀理解,說明程序在"做什么",解釋代碼的目的、功能和采用的方法。# G& p8 a, x+ N8 v4 M; S$ ?
一般情況源程序有效注釋量在30%左右。 V% F& h* g* S4 h$ Q/ K+ R& F* A
注釋語言必須準(zhǔn)確、易懂、簡潔。" @! l# d+ [2 L5 Z7 H- E5 m3 b6 G1 @
邊寫代碼邊注釋,修改代碼同時修改相應(yīng)的注釋,不再有用的注釋要刪除。2 }- H6 I; |0 k1 w
匯編和C中都用"//",取消";" 不使用段注釋" /* */ "(調(diào)試時可用) " u" j3 e; e8 E2 W& A4 R
3.2 文件注釋
. k1 [6 R9 e7 C4 E文件注釋必須說明文件名、函數(shù)功能、創(chuàng)建人、創(chuàng)建日期、版本信息等相關(guān)信息。
. i `& G9 Q9 m& V修改文件代碼時,應(yīng)在文件注釋中記錄修改日期、修改人員,并簡要說明此次修改的目的。所有修改記錄必須保持完整。4 X* O* g" B0 x! ]6 ?: [% G5 f
文件注釋放在文件頂端,用"/*……*/"格式包含。
' w# C# W0 h/ O注釋文本每行縮進(jìn)4個空格;每個注釋文本分項名稱應(yīng)對齊。
. N- [8 ?! E# ^' K# N6 t/***********************************************************
4 l( t$ e& A; t p/ O文件名稱:
6 g+ ?0 k4 y6 J: [( T* q作 者:
$ |: X% _4 j p6 f& O, D2 u5 s2 Q版 本:
7 X: K8 `7 ^3 X1 c' z0 F說 明:
6 l, w M1 Z! k0 r* X修改記錄:- ^1 Q( i" H6 d! C8 `
***********************************************************/
8 S, @ Q) O4 ^# S3 k3.3 函數(shù)注釋
' Z( f9 L, c8 o' F3.3.1 函數(shù)頭部注釋
* b: C& z6 W% O# _函數(shù)頭部注釋應(yīng)包括函數(shù)名稱、函數(shù)功能、入口參數(shù)、出口參數(shù)等內(nèi)容。如有必要還可增加作者、創(chuàng)建日期、修改記錄(備注)等相關(guān)項目。& D: O( u& C+ M! b0 D
函數(shù)頭部注釋放在每個函數(shù)的頂端,用"/*……*/"的格式包含。其中函數(shù)名稱應(yīng)簡寫為Name(),不加入、出口參數(shù)等信息。
! }% H3 @; R( Q$ F! H! k/***********************************************************3 ?6 U, Q' v+ e. c- v2 K
函數(shù)名稱:
6 a2 U, b: i9 C: X- Y% ]函數(shù)功能:
- X' J1 x5 h4 U入口參數(shù):& s( `9 b( k% d4 |/ D& K) q
出口參數(shù):
" d ~0 s% n3 T+ j8 |" d備 注:
* V/ M6 Z+ c8 W' b/ W***********************************************************/
0 h3 F: Z9 U0 ]0 ]# c% m3 e0 c3.3.2 代碼注釋(信、盈、達(dá)‘騰訊:以一齊捂捂吧久零久要’)
9 ^( R. L/ V4 b9 |* v0 ^代碼注釋應(yīng)與被注釋的代碼緊鄰,放在其上方或右方,不可放在下面。如放于上方則需與其上面的代碼用空行隔開。一般少量注釋應(yīng)該添加在被注釋語句的行2尾,一個函數(shù)內(nèi)的多個注釋左對齊;較多注釋則應(yīng)加在上方且注釋行與被注釋的語句左對齊。
' B$ G+ g! u- G6 J函數(shù)代碼注釋用"//…//"的格式。
4 A5 ~- e H. E( K; ~通常,分支語句(條件分支、循環(huán)語句等)必須編寫注釋。其程序塊結(jié)束行"}"的右方應(yīng)加表明該程序塊結(jié)束的標(biāo)記"end of ……", 尤其在多重嵌套時。, {: v+ `7 e) X3 V0 @. `
3.4 變量、常量、宏的注釋
. @8 I* {$ ]" J, r: M同一類型的標(biāo)識符應(yīng)集中定義,并在定義之前一行對其共性加以統(tǒng)一注釋。對單個標(biāo)識符的注釋加在定義語句的行尾。5 v* Y) X) B2 K. @. c6 l/ X
全局變量一定要有詳細(xì)的注釋,包括其功能、取值范圍、哪些函數(shù)或過程存取它以及存取時的注意事項等。
_9 [# i0 Q4 ^/ r$ W, Z1 t注釋用"//…//"的格式。 Y) G5 s& e$ G
3 i% `" u2 R) O5 U1 k7 T' U
|