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