機(jī)械社區(qū)
標(biāo)題: 單片機(jī)開(kāi)發(fā)之C語(yǔ)言編程基本規(guī)范 [打印本頁(yè)]
作者: tainqing 時(shí)間: 2017-8-6 10:30
標(biāo)題: 單片機(jī)開(kāi)發(fā)之C語(yǔ)言編程基本規(guī)范
本規(guī)范主要針對(duì)單片機(jī)編程語(yǔ)言和08編譯器而言,包括排版、注釋、命名、變量使用、代碼可測(cè)性、程序效率、質(zhì)量保證等內(nèi)容。
# D! }8 F1 f8 C% Z) F @) L3 b1.基本規(guī)則 ) T l2 m# ]5 Q0 r2 ]* A' P" w
格式清晰、注釋簡(jiǎn)明扼要、命名規(guī)范易懂、函數(shù)模塊化、程序易讀易維護(hù)、功能準(zhǔn)確實(shí)現(xiàn)、代碼空間效率和時(shí)間效率高、適度的可擴(kuò)展性、單片機(jī)編程規(guī)范-標(biāo)識(shí)符命名 / Y9 o- _/ m8 u1 u
2.標(biāo)識(shí)符命名 2.1 命名基本原則 # \; W; n: T. p. U
(1)命名清晰明了,有明確含義,使用完整單詞或約定俗成的縮寫(xiě)。通常,較短的單詞可通過(guò)去掉元音字母形成縮寫(xiě);較長(zhǎng)的單詞可取單詞的頭幾個(gè)字母形成縮寫(xiě)。即"見(jiàn)名知意"。(2)命名風(fēng)格要自始至終保持一致。 ! O C! v& T+ y
(3)命名中若使用特殊約定或縮寫(xiě),要有注釋說(shuō)明。+ f8 L3 p6 S3 c2 a% h- G, f
(4)同一軟件產(chǎn)品內(nèi)模塊之間接口部分的標(biāo)識(shí)符名稱(chēng)之前加上模塊標(biāo)識(shí)。
H8 F1 Q/ Z: n% s% X& n5 e5 i2.2 宏和常量命名 5 `% ?7 N; j! b; E# h4 W
宏和常量用全部大寫(xiě)字母來(lái)命名,詞與詞之間用下劃線分隔。對(duì)程序中用到的數(shù)字均應(yīng)用有意義的枚舉或宏來(lái)代替。( H# D) s% x7 x) ?
2.3 變量命名 * e3 l2 N' ~/ g# d5 p
變量名用小寫(xiě)字母命名,每個(gè)詞的第一個(gè)字母大寫(xiě)。類(lèi)型前綴(u8\s8 etc.)全局變量另加前綴g_。
' {) X) ~" C, B8 E0 z0 @局部變量應(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等。
3 S1 `( W/ w6 I$ v8 B3 @& l( Q2.4 函數(shù)命名
( m- b' `! z* C) G3 n) d函數(shù)名用小寫(xiě)字母命名,每個(gè)詞的第一個(gè)字母大寫(xiě),并將模塊標(biāo)識(shí)加在最前面。# B. ]/ I5 e2 Y0 u9 A
2.5 文件命名
' Z: w& M7 W/ ^# A- W7 G' z; z一個(gè)文件包含一類(lèi)功能或一個(gè)模塊的所有函數(shù),文件名稱(chēng)應(yīng)清楚表明其功能或性質(zhì)。
" K8 t/ s4 j. Q; v/ X每個(gè).c文件應(yīng)該有一個(gè)同名的.h文件作為頭文件。 $ j! ]* C4 |' H5 x# v
3.注釋 3.1 注釋基本原則 1 [4 o5 L! c( j+ O1 U X, \ D
有助于對(duì)程序的閱讀理解,說(shuō)明程序在"做什么",解釋代碼的目的、功能和采用的方法。; T M2 U" q3 Y9 m( Y
一般情況源程序有效注釋量在30%左右。2 e, Q N" v. M0 d$ ~- |
注釋語(yǔ)言必須準(zhǔn)確、易懂、簡(jiǎn)潔。
% ~3 [9 O( w" Z' @1 J/ b& C2 l/ T邊寫(xiě)代碼邊注釋?zhuān)薷拇a同時(shí)修改相應(yīng)的注釋?zhuān)辉儆杏玫淖⑨屢獎(jiǎng)h除。
8 L" J7 I, p4 }& y, N6 K$ A匯編和C中都用"//",取消";" 不使用段注釋" /* */ "(調(diào)試時(shí)可用)
7 Q3 `0 y9 d3 J0 a- ` Z; r- A3.2 文件注釋
3 T/ z8 x5 l0 ?文件注釋必須說(shuō)明文件名、函數(shù)功能、創(chuàng)建人、創(chuàng)建日期、版本信息等相關(guān)信息。
) K. b% e; t( S! U1 S修改文件代碼時(shí),應(yīng)在文件注釋中記錄修改日期、修改人員,并簡(jiǎn)要說(shuō)明此次修改的目的。所有修改記錄必須保持完整。
# Q# i H- [6 U# b: l7 B8 j% L% t& F文件注釋放在文件頂端,用"/*……*/"格式包含。
4 n2 C7 \0 Y# b: u; B注釋文本每行縮進(jìn)4個(gè)空格;每個(gè)注釋文本分項(xiàng)名稱(chēng)應(yīng)對(duì)齊。! q2 ]* |* H8 T
/***********************************************************
1 f: l9 u' y' Y1 g% `文件名稱(chēng):
( g. c1 _9 A+ Z r8 w3 B作 者:9 K! L; K# g" h9 F3 V5 E( Z' F
版 本:
4 ^3 a, b8 M. w: ]說(shuō) 明:2 @* u9 b$ [' u% z
修改記錄:
; q8 U$ P) Z. N% v***********************************************************/
" h" p# S- I% |3.3 函數(shù)注釋 ( U/ ]$ E* Y8 F2 S+ Z* B
3.3.1 函數(shù)頭部注釋
6 O" r& R) s" ~& O- ?# k7 Z/ U函數(shù)頭部注釋?xiě)?yīng)包括函數(shù)名稱(chēng)、函數(shù)功能、入口參數(shù)、出口參數(shù)等內(nèi)容。如有必要還可增加作者、創(chuàng)建日期、修改記錄(備注)等相關(guān)項(xiàng)目。" ]+ A* U) V- Q( z; t0 q
函數(shù)頭部注釋放在每個(gè)函數(shù)的頂端,用"/*……*/"的格式包含。其中函數(shù)名稱(chēng)應(yīng)簡(jiǎn)寫(xiě)為Name(),不加入、出口參數(shù)等信息。
z# A. a) H) _/***********************************************************4 W" Q9 M- L _7 k8 ]2 T& z1 h2 }# W
函數(shù)名稱(chēng):
' V" M+ t$ O" v函數(shù)功能:7 P, [" n3 Q/ C$ y
入口參數(shù):
% h v# X# n' N# w出口參數(shù):
' W4 K4 M1 S7 x2 s5 ~備 注:6 F. m* [" }. [5 O7 j
***********************************************************/
/ k9 p! I2 L5 X/ X: @1 h& g, I1 ?3.3.2 代碼注釋(信、盈、達(dá)‘騰訊:以一齊捂捂吧久零久要’): @1 L7 b& K8 g6 I B$ n
代碼注釋?xiě)?yīng)與被注釋的代碼緊鄰,放在其上方或右方,不可放在下面。如放于上方則需與其上面的代碼用空行隔開(kāi)。一般少量注釋?xiě)?yīng)該添加在被注釋語(yǔ)句的行2尾,一個(gè)函數(shù)內(nèi)的多個(gè)注釋左對(duì)齊;較多注釋則應(yīng)加在上方且注釋行與被注釋的語(yǔ)句左對(duì)齊。
- s( t# i5 a' ]* z函數(shù)代碼注釋用"//…//"的格式。 Z1 c8 F/ N4 V0 x& p- G$ Q c
通常,分支語(yǔ)句(條件分支、循環(huán)語(yǔ)句等)必須編寫(xiě)注釋。其程序塊結(jié)束行"}"的右方應(yīng)加表明該程序塊結(jié)束的標(biāo)記"end of ……", 尤其在多重嵌套時(shí)。
" W5 Y5 G! {9 Q: { v$ c3.4 變量、常量、宏的注釋
: p5 o: S6 `0 }2 _+ ]" b2 }- i同一類(lèi)型的標(biāo)識(shí)符應(yīng)集中定義,并在定義之前一行對(duì)其共性加以統(tǒng)一注釋。對(duì)單個(gè)標(biāo)識(shí)符的注釋加在定義語(yǔ)句的行尾。8 g8 H1 T" w: z6 |
全局變量一定要有詳細(xì)的注釋?zhuān)ㄆ涔δ、取值范圍、哪些函?shù)或過(guò)程存取它以及存取時(shí)的注意事項(xiàng)等。
# t! W1 T7 `1 ~1 k注釋用"//…//"的格式。 8 F. t* D# z1 [2 O
8 F4 Z8 ]! U( ]) K
作者: liangquan6 時(shí)間: 2017-8-6 14:24
不僅單片機(jī),其余機(jī)械相關(guān)控制程序開(kāi)發(fā)也應(yīng)該這樣編程!
作者: 面壁深功 時(shí)間: 2017-8-6 15:43
謝謝,先收藏起來(lái)
作者: xiaobing86203 時(shí)間: 2017-8-6 19:40
單片機(jī)的基礎(chǔ)知識(shí),值得收藏一波~
作者: 武漢老虎 時(shí)間: 2017-8-8 11:04
學(xué)習(xí)了
作者: tainqing 時(shí)間: 2017-8-9 18:14
共同學(xué)習(xí)進(jìn)步
歡迎光臨 機(jī)械社區(qū) (http://e-learninguniversity.com/) |
Powered by Discuz! X3.4 |