C語言編碼規(guī)范
1 排版規(guī)則
1) 程序應(yīng)采用縮進風(fēng)格編寫,每層縮進使用一個制表位(TAB),類定義、方法都應(yīng)頂格書寫;
2) 源程序建議使用英文書寫,盡量不含有中文。每行不超過80字符。對于較長的語句(>80字符)要分成多行書寫,長表達(dá)式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首,劃分出的新行要進行適當(dāng)?shù)目s進,使排版整齊,語句可讀;循環(huán)、判斷等語句中若有較長的表達(dá)式或語句,則要進行適應(yīng)的劃分;
3) 左花括號要另起一行,不能跟在上一行的行末;
4) 一個變量定義占一行,一個語句占一行;
5) 對獨立的程序塊之間、變量說明之后必須加空行;
6) 在結(jié)構(gòu)成員賦值等情況,等號對齊,最少留一個空格;
7) 若函數(shù)或過程中的參數(shù)較長,則要進行適當(dāng)?shù)膭澐帧?/p>
8) 形參的排序風(fēng)格:
? 最常使用的參數(shù)放在第一位;
? 輸入?yún)?shù)列表應(yīng)放在輸出參數(shù)列表的左邊;
? 將通用的參數(shù)放在特殊的參數(shù)的左邊。
2 命名規(guī)范
2.1 應(yīng)用程序的命名
“系統(tǒng)簡稱”+模塊名稱
2.2 子模塊的命名
每個子模塊的名字應(yīng)該由描述模塊功能的1-3以單詞組成。每個單詞的首字母應(yīng)大寫。在這些單詞中可以使用一些較通用的縮寫。
2.3 變量的命名
變量的命名的基本原則是使得變量的含義能夠從名字中直接理解。可以用多個英文單詞拼寫而成,每個英文單詞的首字母要大寫,其中英文單詞有縮寫的可用縮寫;變量的前綴表示該變量的類型;對于作用域跨越10行以上的變量名稱不能少于4個字符,除循環(huán)變量,累加變量外不得使用I、j、k等名稱的變量。變量分為取全局變量和局部變量,對于全局變量以加前綴“g_”來區(qū)分。
使用有意義的英語單詞,使用大小寫分隔,每個單詞的第一個字母為大寫
考慮到習(xí)慣性和簡潔性,對于按常規(guī)使用的局部變量允許采用極短的名字,如用n、i作為循環(huán)變量,p、q作為指針等。另外,要注意的是:全局變量在程序中不要定義太多,能用局部變量的就用局部變量。如果要使用相關(guān)的變量,建議采用類的方式或者結(jié)構(gòu)的方式存放,以減少具體變量的個數(shù)。
2.4 常量的命名
常量所有的字母均為大寫。并且單詞之間使用下劃線”_”隔開。
2.5 函數(shù)/過程的命名
函數(shù)/過程名稱應(yīng)該盡量使用能夠表達(dá)函數(shù)功能的英文名稱,函數(shù)名稱中應(yīng)該禁止使用如同function1,function2等含義不清的名稱。單詞間應(yīng)該使用大小寫分隔。全局函數(shù)/過程名稱以“g_”前綴開始。
2.6 接口命名
接口名稱要以大寫字母開頭。如果接口包含多個單詞,每個單詞的首字母大寫,其他字母小寫,如果,這些單詞是縮略語(例如XML),也要首字母大寫,其他字母小寫(寫為Xml)。
2.7 類的命名
類名稱要以大寫字母開頭;
類名稱如果包含多個單詞,每個單詞的首字母要大寫,其他字母小寫;如果這些單詞是縮略語(例如XML),也要首字母大寫,其他字母小寫(寫作Xml);
類名稱應(yīng)該是一個名詞或名詞短語;
類成員變量的命名規(guī)則與上述規(guī)則相同,但是要以“m_”開始,表示其為成員變量(Member);
類名稱不能出現(xiàn)下劃線。
2.8 方法的命名
方法名稱以小寫字母開頭。
方法名稱如果包含多個單詞,除了第一個單詞外,每個單詞的首字母大寫,其它字
母小寫。如果這些單詞是縮略語(例如XML),也要首字母大寫,其它字母小寫(寫作Xml)。
方法名稱應(yīng)該是一個動詞或動名詞短語,意思是“完成什么功能”,“執(zhí)行什么操作”。
2.9 數(shù)據(jù)庫的命名
2.9.1 表:
采用“模塊名簡稱+前綴+’_’+表名”的命名規(guī)則。表名以能理解該表的內(nèi)容為原則,
可由中文表示,也可由代表此表含義的英文字母組成;首字母大寫;前綴代表此表類別。
2.9.2 視圖:
采用“模塊名+’_’+視圖名+’視圖’”的命名規(guī)則,通常由8個以內(nèi)漢字組成。
2.9.3 存儲過程:
采用“Proc+模塊名+’_’+存儲過程名”的命名規(guī)則。
2.9.4 觸發(fā)器:
采用“模塊名+’’+觸發(fā)類型+’’+表名”的命名規(guī)則,如果有多個觸發(fā)類型,則可以疊加在一起。
2.9.5 字段:
字段的命名以能理解該字段的含義為原則,通常由多個英文單詞加前綴拼寫而成,而組成字段名稱的首字母應(yīng)大寫。單詞有縮寫的可用縮寫。字段的前綴表示該字段的數(shù)據(jù)類型,其取值詳見“數(shù)據(jù)類型”描述。原則上,字段的命名長度不超過18字節(jié);描述字段的中文名稱,用數(shù)據(jù)庫創(chuàng)建工具設(shè)計數(shù)據(jù)庫時,需要輸入。
3 參數(shù)的約定
3.1 輸入?yún)?shù)的約定
有些函數(shù)有輸入?yún)?shù),這些參數(shù)指由函數(shù)外部(調(diào)用者)輸入,并在函數(shù)內(nèi)部使用。在函數(shù)業(yè)務(wù)流程說明后跟輸入?yún)?shù)說明區(qū),用“輸入?yún)?shù)”或“Input Parameters”標(biāo)記。在參數(shù)名列表中的每個參數(shù)后增加該參數(shù)的注釋。
3.2 輸出參數(shù)的約定
有些函數(shù)有輸出參數(shù),這些參數(shù)指由函數(shù)外部(調(diào)用者)定義,在函數(shù)內(nèi)部使用并返回給調(diào)用者的參數(shù)。在輸入?yún)?shù)說明區(qū)后跟輸出參數(shù)說明區(qū),用“輸出參數(shù)”或 “Output Parameters”標(biāo)記。在參數(shù)名列表中的每個參數(shù)后增加該參數(shù)的注釋。另外輸出參數(shù)一般以指針或應(yīng)用輸出。
3.3 返回值的約定
每個函數(shù)均有返回值,除非操作非常簡單。對于有不同狀態(tài)的返回值,建議用long型的返回值,0為成功。對于出錯類返回值,在同一層次的模塊,用統(tǒng)一代碼表示。在輸出參數(shù)說明區(qū)后跟返回值說明區(qū),用“返回值”或“Return values”標(biāo)記。返回值說明,要說明各種不同類型返回值以及它們的含義。
4 注釋約定
在軟件中對每個文件頭,自定義函數(shù)和變量,重要的處理過程都要有必要的注釋。
4.1 源程序頭的注釋和規(guī)范
每個源程序(包括存儲過程)必須有頭部說明、版本說明和函數(shù)結(jié)構(gòu)三個部分:
源程序頭部說明
FileName:
Copy Right:
System:
Module:
Function:
See also:
Author:
Create Date: 本程序的外部名字(如 *.prg, *.cpp)
本文件所在的系統(tǒng)或工程的名字
本文件所在的功能模塊名稱
簡要說明本程序的功能
相關(guān)詳細(xì)設(shè)計文檔號
編碼人員
創(chuàng)建日期
源程序版本說明
Editor:
Version:
Edit Date: 修改人員
版本號
修改日期
4.2 函數(shù)頭的注釋和規(guī)范
Name:
Function:
Input:
Output:
Return:
Syntax:
Env:
Calling: 函數(shù)名稱
簡述函數(shù)或過程的功能
[參數(shù)1] - [說明…]
[參數(shù)2] - [說明…]
[參數(shù)1] - [說明…]
[參數(shù)2] - [說明…]
[返回碼1] - [說明…]
[返回碼2] - [說明…]
調(diào)用語法(可選)
環(huán)境要求和影響(可選的)
被調(diào)用的函數(shù)(可選的)
4.3 變量注釋
直接在變量后面注明變量的用途和取值約定,例如:
4.4 類型定義注釋
指類和記錄等等定義的注釋。在注釋中標(biāo)明定義的用途。
4.5 區(qū)的注釋
同一個類的成員方法要求排列在一起,共同協(xié)作而實現(xiàn)同一個功能的函數(shù)和過程要求排列在一起。代碼通常使用幾個函數(shù)和過程來實現(xiàn)某一項功能,這時候需要使用區(qū)注釋將這些具有共同目的的函數(shù)和過程標(biāo)明出來。
使用整行的”*”作為隔離行,讓程序清晰可讀。
一般刪除的代碼不建議直接刪除,最好用“//”注釋起來。
4.6 代碼中的注釋
在代碼中要求注釋的地方有:
? 代碼中的關(guān)鍵部分;
? 在使用特殊算法或者邏輯性較強的代碼;
? 在修改或刪除代碼部分,需要加注釋;修改/刪除人,目的。
5 變量的作用范圍
盡量做到縮小變量的作用范圍,對于變量是指針的,應(yīng)遵循以下約定:
? 在局部分配的空間在局部釋放。
? 函數(shù)體內(nèi)不能分配空間并將空間指針作為函數(shù)參數(shù)返回。
? 動態(tài)全局空間在程序結(jié)束時一定要釋放。
? 所有動態(tài)分配的空間在對應(yīng)層次的模塊釋放,并且用完馬上釋放。不重復(fù)釋放相
同的指針。
6 函數(shù)/過程的定義
在函數(shù)的定義處應(yīng)當(dāng)增加本函數(shù)的功能描述的注釋。用一句話描述清楚功能??捎糜⑽幕蛑形?。功能注釋格式要求所有代碼一致。
7 函數(shù)業(yè)務(wù)流程的定義
在函數(shù)功能描述后,要增加函數(shù)的主要業(yè)務(wù)流程注釋。可以用多行描述,以解釋清楚業(yè)務(wù)流程為主??捎糜⑽幕蛑形摹I(yè)務(wù)流程注釋格式要求所有代碼一致。
業(yè)務(wù)流程注釋可以盡量詳細(xì),注釋的長度可以與代碼長度差不多,但是不要太長。
比如處理N階乘的函數(shù)業(yè)務(wù)流程定義如下:
-
C語言
+關(guān)注
關(guān)注
180文章
7581瀏覽量
135581 -
編碼
+關(guān)注
關(guān)注
6文章
920瀏覽量
54711
原文標(biāo)題:【初識C語言之第二篇】編碼規(guī)范
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論