C語言代碼規範
排版規則
1、程序採用縮進風格,每層縮進使用一個製表位(TAB)
2、源程序使用英文書寫,儘量不含有中文。
3、左花括號要另起一行,不能跟在上一行的行末;
4、一個變量定義佔一行,一個語句佔一行;
5、對獨立的程序塊之間、變量說明之後必須加空行;
6、運算符兩側留空格;
7、在+、-、*、/、!=等運算符的兩側應用空格隔開
例: 正確:a += b; 錯誤:a+=b;
代碼格式
1、代碼格式遵從徐老師網課中的代碼格式以一個for循環爲例:
1) for(int i = 0; i < 10; i++)
{
;
}
2) for(int i = 0; i < 10; i++){
;
}
以上兩種都認可!
2、源程序基本上用英語,排除輸出的提示語言!
3、代碼塊的註釋都寫在代碼的上面
4、換行是有可能被忽略的一種方式,方法間要換行,而同一個方法裏不同的邏輯塊也要換行。
一方面讓代碼的邏輯更加清晰,一方面也會督促你想清楚邏輯甚至鍛鍊自己的思維更加具有邏輯性。
5、如果一行代碼過長,閱讀的時候就需要拖動滾動條才能看全,是不是很不能忍受?
所以單行代碼最好可以在一屏裏顯示全,如果過長就需換行。
6、連續多行賦值代碼,保持“=”整齊
命名規範
1、變量的命名:帕斯卡命名法
1) 定義變量時,名字要有意義。
2) 用多個英文單詞拼寫,除第一個單詞外每個英文單詞首字母都要大寫。
例如:playerSkill,(玩家技能)。
3) 全局變量:g_+命名
4) 指針變量:p_+命名
5) 靜態變量:s_+命名
6) const變量:c_+命名
注意:只有在循環時,才能用 i、j、k等名稱的變量。
全局變量必要的時候纔可以定義,否則應儘量使用局部變量。
2、宏定義的命名
宏定義所有的字母均爲大寫。且每個單詞之間用“_”進行連接
例:static final int MAX_BUFFER_SIZE = 102400;
3、數組和結構體的命名
數組和結構體名稱用具體的英文名稱,單詞間首字母大寫。
結構體名稱後需加上:Array。如:PlayerArray(玩家結構)
4、C/C++命名必須遵循下劃線命名法,即每一個邏輯斷點都有一個下劃線來標記。
例如:num_sequence //數字順序
5、所有編程相關命名均不能以下劃線或美元符號開始,嚴禁拼音與引文混合的方式,更加不能用中文方式命名,避免縮寫英文。
6、命名必須準確,不引起歧義,不過於簡單,並且長度適中。
7、函數的命名:駝峯法
函數名稱用具體的英文名稱,單詞間首字母大寫。
例如:PlayerBag()。
如果這些單詞是縮略語(例如XML),也要首字母大寫,其它字母小寫(寫作Xml)。
命名中若使用特殊約定或縮寫,則要有註釋說明。
方法名稱應該是一個動詞或動名詞短語,意思是“完成什麼功能”,“執行什麼操作”。
註釋約定
1、函數頭的註釋和規範
2、對某一功能的逐步書寫註釋:
該註釋可以讓你理清思路。
打個比方,造一輛車
首先我們看一輛車有什麼:爲了簡單起見,只取輪子、發動機、油箱、外殼、底盤
材料取來了,人員有限,一天按一部分,先放底盤、之後是發動機、輪子、引擎等,最後上外殼。
//造一輛車
//放底盤
//放輪子
//放發動機
//…
//安放外殼
3、變量註釋
1) 變量註釋寫在左邊,一定要對齊。
int i; //定義外層循環變量
int j; //定義內層循環變量
2)直接在變量後面註明變量的用途和取值約定。
例如:int judge = 0;//記錄猜骰子的正確次數,>=3:勝利 (骰子游戲)
4、文檔註釋
新建一個.h文件時,添加在文件頂部的註釋,包括:
xxx團隊 版權所有 版本信息
本文件所在的系統或工程的名字
本文件所在的功能模塊名稱
簡要說明本程序的功能
編碼人員
創建日期
源程序版本說明
Edit Date: 修改人員
版本號
修改日期
修改後程序版本說明
5、一個文件開頭應註釋一下內容
// 更新日期:
// 更新人員:
// 代碼作用
6、日常註釋
對於一些關聯性不大的代碼需添加註釋
注意:註釋過多註釋應該放在被註釋的代碼上面,分行展示,但中間不留空行。
對變量的定義和分支語句(條件分支、循環語句等)必須編寫註釋。
代碼千萬條,註釋第一條。
註釋不規範,同事兩行淚。
變量的作用和範圍
儘量做到縮小變量的作用範圍,對於變量是指針的,應遵循以下約定:
Ø 在局部分配的空間在局部釋放。
Ø 函數體內不能分配空間並將空間指針作爲函數參數返回。
Ø 動態全局空間在程序結束時一定要釋放。
補充
自己特有的命名風格,要自始至終保持一致,不可來回變化。
個人的命名風格,在符合命名規則的前提下,纔可使用。(即命名規則中沒有規定到的地方纔可有個人命名風格)
代碼要保證有良好的結構性和邏輯性,方便擴展和整理。
如果小夥伴們還有其他要補充的,可以留言告訴我哦。
對於熱愛編程的人來說,有一羣一起學習一起解答的小夥伴很重要!
這裏有一個C/C++編程學習交流俱樂部 傳送通道:【☯】
還有編程學習文件(源碼,零基礎教程,項目實戰教學視頻),歡迎初學者和正在進階中的小夥伴們!