本規(guī)范主要針對(duì)單片機(jī)編程語言和08編譯器而言,包括排版,、注釋,、命名,、變量使用,、代碼可測(cè)性,、程序效率,、質(zhì)量保證等內(nèi)容,。
0 j0 W: T$ r; b1.基本規(guī)則
: e/ B' J u8 C j2 {5 z! Y, M6 ^格式清晰、注釋簡(jiǎn)明扼要,、命名規(guī)范易懂,、函數(shù)模塊化、程序易讀易維護(hù),、功能準(zhǔn)確實(shí)現(xiàn),、代碼空間效率和時(shí)間效率高,、適度的可擴(kuò)展性、單片機(jī)編程規(guī)范-標(biāo)識(shí)符命名
4 p2 P' k+ C( M W9 C# @* R2.標(biāo)識(shí)符命名 2.1 命名基本原則 # i M6 h; g/ X1 t. J: ^2 y) l
(1)命名清晰明了,,有明確含義,,使用完整單詞或約定俗成的縮寫。通常,,較短的單詞可通過去掉元音字母形成縮寫,;較長(zhǎng)的單詞可取單詞的頭幾個(gè)字母形成縮寫。即"見名知意",。(2)命名風(fēng)格要自始至終保持一致,。
5 w, s& U9 Y8 E& O, C* L9 A( B( m(3)命名中若使用特殊約定或縮寫,要有注釋說明,。1 Z( n8 } T5 r/ e# J H
(4)同一軟件產(chǎn)品內(nèi)模塊之間接口部分的標(biāo)識(shí)符名稱之前加上模塊標(biāo)識(shí),。
# c( I; K5 [4 N/ h9 ^2.2 宏和常量命名
- t4 Q: y& y' s7 m- C1 H8 ~宏和常量用全部大寫字母來命名,詞與詞之間用下劃線分隔,。對(duì)程序中用到的數(shù)字均應(yīng)用有意義的枚舉或宏來代替,。8 u y5 y6 B8 ~. Y! I
2.3 變量命名
6 h0 f) \# b' i3 b$ Y變量名用小寫字母命名,每個(gè)詞的第一個(gè)字母大寫,。類型前綴(u8\s8 etc.)全局變量另加前綴g_,。2 J6 t4 q) D; \) @3 ~
局部變量應(yīng)簡(jiǎn)明扼要。局部循環(huán)體控制變量?jī)?yōu)先使用i,、j,、k等;局部長(zhǎng)度變量?jī)?yōu)先使用len,、num等,;臨時(shí)中間變量?jī)?yōu)先使用temp、tmp等,。8 N& R$ c* u8 u5 Z4 i: R2 j' G( P
2.4 函數(shù)命名 ' J7 K% F+ m1 @2 D: ?
函數(shù)名用小寫字母命名,,每個(gè)詞的第一個(gè)字母大寫,并將模塊標(biāo)識(shí)加在最前面,。
I, ^3 d4 [9 I2.5 文件命名
& J) U" h M( I* ?3 u5 L一個(gè)文件包含一類功能或一個(gè)模塊的所有函數(shù),,文件名稱應(yīng)清楚表明其功能或性質(zhì),。
9 f: p+ Y! f# S, o0 g' ?+ E每個(gè).c文件應(yīng)該有一個(gè)同名的.h文件作為頭文件,。 ( b8 B) U$ J; y- ^
3.注釋 3.1 注釋基本原則 : ^+ z; t( U% J' b3 f+ o
有助于對(duì)程序的閱讀理解,說明程序在"做什么",,解釋代碼的目的,、功能和采用的方法。* f( q! B6 @: ^4 H4 B+ m
一般情況源程序有效注釋量在30%左右,。% m! i4 |3 t6 ]8 j* c; E
注釋語言必須準(zhǔn)確,、易懂,、簡(jiǎn)潔。7 C, t$ s! o" r
邊寫代碼邊注釋,,修改代碼同時(shí)修改相應(yīng)的注釋,,不再有用的注釋要?jiǎng)h除。
9 l' l% d% f* O匯編和C中都用"//",,取消";" 不使用段注釋" /* */ "(調(diào)試時(shí)可用)
_3 V% d1 O/ b0 R; q& Y: S3.2 文件注釋
3 S- A# M W, u$ `文件注釋必須說明文件名,、函數(shù)功能、創(chuàng)建人,、創(chuàng)建日期,、版本信息等相關(guān)信息。
w, T2 Y: t; k# m' B8 X修改文件代碼時(shí),,應(yīng)在文件注釋中記錄修改日期,、修改人員,并簡(jiǎn)要說明此次修改的目的,。所有修改記錄必須保持完整,。
5 @, J% \ ^# T, E4 ?! m文件注釋放在文件頂端,用"/*……*/"格式包含,。
/ r* [, P1 ]" o6 W注釋文本每行縮進(jìn)4個(gè)空格,;每個(gè)注釋文本分項(xiàng)名稱應(yīng)對(duì)齊。
2 l# F+ y: ]' }4 v+ F& V/***********************************************************
' `7 o! l# i5 {; D$ G: H. o6 T文件名稱:' c; F7 r. u. n; O, L+ \! H
作 者:
y" K) @: T) ?- Z版 本:5 _: m& x* x: A
說 明:
! N1 c5 l; M0 L$ p+ |修改記錄:
' @1 y/ P. X# u% h! l P***********************************************************/
" y* H# y4 {) d5 d+ N; ^6 ^+ x# J3.3 函數(shù)注釋
& J- q" V6 |# m& \3.3.1 函數(shù)頭部注釋
; o+ g! C. g5 Q) Z函數(shù)頭部注釋應(yīng)包括函數(shù)名稱,、函數(shù)功能,、入口參數(shù)、出口參數(shù)等內(nèi)容,。如有必要還可增加作者,、創(chuàng)建日期、修改記錄(備注)等相關(guān)項(xiàng)目,。
8 N, ?' j5 D. h$ M9 ~函數(shù)頭部注釋放在每個(gè)函數(shù)的頂端,,用"/*……*/"的格式包含。其中函數(shù)名稱應(yīng)簡(jiǎn)寫為Name(),,不加入,、出口參數(shù)等信息。
3 ?. e3 H8 d4 r/ ]% @/***********************************************************
8 x* C. u5 K3 I! }5 ]; e9 _函數(shù)名稱:! n: m' b+ \, w# Q X7 {# B
函數(shù)功能:, j/ ^. m- y# q3 r2 J5 g+ r
入口參數(shù):2 L7 G+ _( k: X+ f9 w( T- \
出口參數(shù):
6 n9 _1 J2 X9 U/ F$ S備 注:
% h P$ V! s" J h% {0 p- G***********************************************************/
1 ?& z' O# E. ^) i |2 }& A5 U3.3.2 代碼注釋(信,、盈,、達(dá)‘騰訊:以一齊捂捂吧久零久要’)
' K: V+ j5 r5 i( e$ W+ @9 A1 U代碼注釋應(yīng)與被注釋的代碼緊鄰,放在其上方或右方,,不可放在下面,。如放于上方則需與其上面的代碼用空行隔開。一般少量注釋應(yīng)該添加在被注釋語句的行2尾,一個(gè)函數(shù)內(nèi)的多個(gè)注釋左對(duì)齊,;較多注釋則應(yīng)加在上方且注釋行與被注釋的語句左對(duì)齊,。 s+ v# G3 S( |: [8 [7 p
函數(shù)代碼注釋用"//…//"的格式。
8 ]# w* Q. Q5 k& ~* c通常,,分支語句(條件分支,、循環(huán)語句等)必須編寫注釋。其程序塊結(jié)束行"}"的右方應(yīng)加表明該程序塊結(jié)束的標(biāo)記"end of ……", 尤其在多重嵌套時(shí),。" x' k8 ~, Z9 ]+ e$ K& [
3.4 變量,、常量、宏的注釋
! f5 T$ ~$ @, w5 _9 j8 A同一類型的標(biāo)識(shí)符應(yīng)集中定義,,并在定義之前一行對(duì)其共性加以統(tǒng)一注釋,。對(duì)單個(gè)標(biāo)識(shí)符的注釋加在定義語句的行尾。
# m0 u3 l, F% Z0 ?; W' L% m' R$ K' m全局變量一定要有詳細(xì)的注釋,,包括其功能,、取值范圍、哪些函數(shù)或過程存取它以及存取時(shí)的注意事項(xiàng)等,。
* g$ d! P; `; h4 p注釋用"//…//"的格式,。
# K5 E) r( j4 J 4 G" n. l: A0 ]. |/ T) e6 r) y
|