機械社區(qū)
標題: 單片機開發(fā)之C語言編程基本規(guī)范 [打印本頁]
作者: tainqing 時間: 2017-8-6 10:30
標題: 單片機開發(fā)之C語言編程基本規(guī)范
本規(guī)范主要針對單片機編程語言和08編譯器而言,包括排版,、注釋,、命名、變量使用,、代碼可測性,、程序效率、質量保證等內容。 " u, U* s& S, M0 j% ~' P+ Q7 c
1.基本規(guī)則
, ?4 T; s2 O. x8 R- J* i- M格式清晰、注釋簡明扼要,、命名規(guī)范易懂、函數(shù)模塊化,、程序易讀易維護、功能準確實現(xiàn),、代碼空間效率和時間效率高,、適度的可擴展性、單片機編程規(guī)范-標識符命名
+ i+ p: _' v- @0 F4 J& L, [2.標識符命名 2.1 命名基本原則 ) u5 E) ^0 [1 p% x
(1)命名清晰明了,,有明確含義,,使用完整單詞或約定俗成的縮寫。通常,,較短的單詞可通過去掉元音字母形成縮寫,;較長的單詞可取單詞的頭幾個字母形成縮寫。即"見名知意",。(2)命名風格要自始至終保持一致,。 ) U+ }: a# ~0 x
(3)命名中若使用特殊約定或縮寫,要有注釋說明,。9 B5 `" ~- y' g) G/ a
(4)同一軟件產品內模塊之間接口部分的標識符名稱之前加上模塊標識,。" q: I! Z5 H8 `" f% R# s/ v
2.2 宏和常量命名 - g6 h# a3 ]5 @
宏和常量用全部大寫字母來命名,,詞與詞之間用下劃線分隔。對程序中用到的數(shù)字均應用有意義的枚舉或宏來代替,。
4 [$ i, W; @# Z0 X# @8 U9 Q4 e# U2.3 變量命名 ' D0 c; J* ^+ X
變量名用小寫字母命名,,每個詞的第一個字母大寫。類型前綴(u8\s8 etc.)全局變量另加前綴g_,。$ r$ G+ i! ^/ V$ c8 R4 x; N
局部變量應簡明扼要,。局部循環(huán)體控制變量優(yōu)先使用i、j,、k等;局部長度變量優(yōu)先使用len,、num等,;臨時中間變量優(yōu)先使用temp、tmp等,。+ f% q% F3 }4 x {8 N
2.4 函數(shù)命名 ( M* E% `7 X' F
函數(shù)名用小寫字母命名,,每個詞的第一個字母大寫,并將模塊標識加在最前面,。
+ u5 j" k6 g- ?) q& G2.5 文件命名
3 T( \+ v) b5 `一個文件包含一類功能或一個模塊的所有函數(shù),,文件名稱應清楚表明其功能或性質。) [; ^) ?5 O* D' \4 o/ X% C2 z
每個.c文件應該有一個同名的.h文件作為頭文件,。
+ d3 l8 X) q3 W0 e* H3.注釋 3.1 注釋基本原則 s. ]; a' t5 l! ?1 @
有助于對程序的閱讀理解,,說明程序在"做什么",解釋代碼的目的,、功能和采用的方法,。* q& u6 `6 ~0 L
一般情況源程序有效注釋量在30%左右。
: c4 v1 ?) U& G. ~% |; T注釋語言必須準確,、易懂,、簡潔。3 z% O- Q* F6 w! |2 M8 ]
邊寫代碼邊注釋,,修改代碼同時修改相應的注釋,,不再有用的注釋要刪除。. j {" M7 c3 z9 y8 v
匯編和C中都用"//",,取消";" 不使用段注釋" /* */ "(調試時可用) ! t/ G& Y+ M: [
3.2 文件注釋 - W3 T7 q" O/ L: M9 }9 E
文件注釋必須說明文件名,、函數(shù)功能、創(chuàng)建人,、創(chuàng)建日期,、版本信息等相關信息。
) w4 l. `; W" F9 e1 {! z: e修改文件代碼時,,應在文件注釋中記錄修改日期,、修改人員,,并簡要說明此次修改的目的。所有修改記錄必須保持完整,。
& V& N6 P# x' r文件注釋放在文件頂端,,用"/*……*/"格式包含。$ T0 p; k* G0 s7 Y' z! l( M
注釋文本每行縮進4個空格,;每個注釋文本分項名稱應對齊,。9 J. F% x' b5 @; C0 P
/***********************************************************/ p2 o0 [4 ^* o7 D9 F
文件名稱:5 [; |1 {/ T7 j C4 A2 p' `- n. g" Q
作 者:
3 c5 [ h6 }( y% G3 w版 本:/ |7 t1 J$ y& g2 D2 Z3 B7 X: z
說 明:9 s4 b: n" }6 l- l1 B" [
修改記錄:% q) M/ ]% _3 T) W1 V
***********************************************************/
" N) \! \7 ^5 I/ y* F& q: A3.3 函數(shù)注釋
( }' t* m5 l5 v3.3.1 函數(shù)頭部注釋9 r2 H5 W. ]: W+ Y) y8 n/ z
函數(shù)頭部注釋應包括函數(shù)名稱、函數(shù)功能,、入口參數(shù),、出口參數(shù)等內容。如有必要還可增加作者,、創(chuàng)建日期,、修改記錄(備注)等相關項目。5 x: m4 {1 t7 d9 E% Y4 ?3 Z
函數(shù)頭部注釋放在每個函數(shù)的頂端,,用"/*……*/"的格式包含,。其中函數(shù)名稱應簡寫為Name(),不加入,、出口參數(shù)等信息,。
4 k. \$ ?. E& N. c& ~) L/***********************************************************6 J* E0 k, L' R% N$ E
函數(shù)名稱:
+ V6 t% n$ ^2 b- i; J' e0 i, z函數(shù)功能:/ G4 T& a6 A" _5 t4 A
入口參數(shù):! E$ S0 S5 Q5 }; X; R" ^
出口參數(shù):# j+ `* e) h3 k7 e3 ^7 i1 }. b) [0 }
備 注:
/ O2 n9 l. i2 n7 H) O2 |* J***********************************************************/
& D* S6 B5 k$ v( \7 J" D9 C3.3.2 代碼注釋(信、盈,、達‘騰訊:以一齊捂捂吧久零久要’)7 W& j. i$ ]% @8 ]4 q; H# F5 r
代碼注釋應與被注釋的代碼緊鄰,,放在其上方或右方,不可放在下面,。如放于上方則需與其上面的代碼用空行隔開,。一般少量注釋應該添加在被注釋語句的行2尾,一個函數(shù)內的多個注釋左對齊,;較多注釋則應加在上方且注釋行與被注釋的語句左對齊,。. A0 p% |* @2 [7 Q) a& Z8 Y1 o4 a5 ^
函數(shù)代碼注釋用"//…//"的格式。
# S3 l4 \6 U- Q9 Q通常,,分支語句(條件分支,、循環(huán)語句等)必須編寫注釋。其程序塊結束行"}"的右方應加表明該程序塊結束的標記"end of ……", 尤其在多重嵌套時,。
+ {4 Z8 [. ?" j% m) E3.4 變量,、常量、宏的注釋 6 M, W+ x. \7 w
同一類型的標識符應集中定義,,并在定義之前一行對其共性加以統(tǒng)一注釋,。對單個標識符的注釋加在定義語句的行尾。
0 k+ q1 }2 r$ ?6 [$ S) [全局變量一定要有詳細的注釋,,包括其功能,、取值范圍,、哪些函數(shù)或過程存取它以及存取時的注意事項等。- g# c8 K8 Y$ U
注釋用"//…//"的格式,。
0 I: z: B3 h7 s L0 a
: ^% }9 j0 b- g8 N2 r" S6 \( K
作者: liangquan6 時間: 2017-8-6 14:24
不僅單片機,,其余機械相關控制程序開發(fā)也應該這樣編程!
作者: 面壁深功 時間: 2017-8-6 15:43
謝謝,,先收藏起來
作者: xiaobing86203 時間: 2017-8-6 19:40
單片機的基礎知識,,值得收藏一波~
作者: 武漢老虎 時間: 2017-8-8 11:04
學習了
作者: tainqing 時間: 2017-8-9 18:14
共同學習進步
歡迎光臨 機械社區(qū) (http://97307.cn/) |
Powered by Discuz! X3.4 |