C语言 程序代码编写规范
前言
一個好的程序編寫規范是編寫高質量程序的保證。清晰、規范的源程序不僅僅是方便閱讀,更重要的是能夠便于檢查錯誤,提高調試效率,從而最終保證軟件的質量和可維護性。
說明
l?本文檔主要適用于剛剛開始接觸編程的初學者。
l?對于具有一定工程項目開發經驗的程序員,建議學習C語言程序代碼編寫規范—高級版。
目錄
1?代碼書寫規范
2?注釋書寫規范
3?命名規范
4?其它一些小技巧和要求
1?代碼書寫規范
1.1函數定義
花括號: { }
每個函數的定義和說明應該從第1列開始書寫。函數名(包括參數表)和函數體的花括號應該各占一行。在函數體結尾的括號后面可以加上注釋,注釋中應該包括函數名,這樣比較方便進行括號配對檢查,也可以清晰地看出來函數是否結束。
范例1:函數的聲明
void?matMyFunction(int?n)
{
……
}?/*?matMyFunction*/
1.2空格與空行的使用
要加空格的場合
l?在逗號后面和語句中間的分號后面加空格,如:
int?i,?j,?k;
for?(i?=?0;?i?<?n;?i++)
result?=?func(a,?b,?c);
l?在二目運算符的兩邊各留一個空格,如
a?>?b????a?<=?b??i?=?0
l?關鍵字兩側,如if?()?…,?不要寫成if()?…
l?類型與指針說明符之間一定要加空格:
char?*szName;
不加空格的場合
l?在結構成員引用符號.和->左右兩加不加空格:
pStud->szName,??Student.nID
l?不在行尾添加空格或Tab
l?函數名與左括號之間不加空格:
?func(…)
l?指針說明符號*與變量名間不要加空格:
int?*pInt;?不要寫成:?int?*?pInt;
l?復合運算符中間不能加空格,否則會產生語法錯誤,如:
a?+?=?b??????a?<?=?b????都是錯誤的
空行與換行
l?函數的變量說明與執行語句之間加上空行;
l?每個函數內的主要功能塊之間加空行表示區隔;
l?不要在一行中寫多條語句.
范例2:空行與換行
int?main()
{
????int?i,?j,?nSum?=?0;??//變量說明
????
????for?(i?=?0;?i?<?10;?i++)??//執行代碼
????{
for?(j?=?0;?j?<?10;?j++)
{
?????nSum?+=?i;
}
????}
}
1.3縮進的設置
根據語句間的層次關系采用縮進格式書寫程序,每進一層,往后縮進一層
有兩種縮進方式:1,使用Tab鍵;2,采用4個空格。
整個文件內部應該統一,不要混用Tab鍵和4個空格,因為不同的編輯器對Tab鍵的處理方法不同。
1.4折行的使用
·?每行的長度不要超過80個字符,當程序行太長時,應該分行書寫。
·?當需要把一個程序行的內容分成幾行寫時,操作符號應該放在行末。
·?分行時應該按照自然的邏輯關系進行,例如:不要把一個簡單的邏輯判斷寫在兩行上。
·?分行后的縮進應該按照程序的邏輯關系進行對齊。例如:參數表折行后,下面的行應該在參數表左括號的下方。
范例2:折行的格式
dwNewShape?=?matAffineTransform(coords,?translation,
??rotation);
if?(((new_shape.x?>?left_border)?&&
(new_shape.x?<?right_border))?&&
((new_shape.y?>?bottom_border)?&&
(new_shape.y?<?top_border)))
{
????draw(new_shape);
}
1.5嵌套語句(語句塊)的格式
對于嵌套式的語句--即語句塊(如,if、while、for、switch等)應該包括在花括號中。花括號的左括號應該單獨占一行,并與關鍵字對齊。建議即使語句塊中只有一條語句,也應該使用花括號包括,這樣可以使程序結構更清晰,也可以避免出錯。建議對比較長的塊,在末尾的花括號后加上注釋以表明該語言塊結束。
范例3:嵌套語句格式
if?(value?<?max)?
{
????if?(value?!=?0)
????{
?????????func(value);
????}
}
}?else?{
????error("The?value?is?too?big.");
}?/*?if?(value?<?max)?*/
2?注釋書寫規范
注釋必須做到清晰,準確地描述內容。對于程序中復雜的部分必須有注釋加以說明。注釋量要適中,過多或過少都易導致閱讀困難。
2.1注釋風格
·?C語言中使用一組(/*?…?*/)作為注釋界定符。
·?注釋內容盡量用英語方式表述。
·?注釋的基本樣式參考范例4。
·?注釋應該出現在要說明的內容之前,而不應該出現在其后。
·?除了說明變量的用途和語言塊末尾使用的注釋,盡量不使用行末的注釋方式。
范例4:幾種注釋樣式
/*
*?************************************************
*?強調注釋
*?************************************************
*/
/*
*?塊注釋
*/
/*?單行注釋?*/
//單行注釋
int?i;?/*行末注釋*/
2.2何時需要注釋
·?如果變量的名字不能完全說明其用途,應該使用注釋加以說明。
·?如果為了提高性能而使某些代碼變得難懂,應該使用注釋加以說明。
·?對于一個比較長的程序段落,應該加注釋予以說明。如果設計文檔中有流程圖,則程序中對應的位置應該加注釋予以說明。
·?如果程序中使用了某個復雜的算法,建議注明其出處。
·?如果在調試中發現某段落容易出現錯誤,應該注明。
3 命名規范
3.1常量、變量命名
l?符號常量的命名用大寫字母表示。如:
#define?LENGTH?10
l?如果符號常量由多個單詞構成,兩個不同的單詞之間可以用下劃線連接。如:
#define?MAX_LEN?50
變量命名的基本原則:
l?可以選擇有意義的英文(小寫字母)組成變量名,使人看到該變量就能大致清楚其含義。
l?不要使用人名、地名和漢語拼音。
l?如果使用縮寫,應該使用那些約定俗成的,而不是自己編造的。
l?多個單詞組成的變量名,除第一個單詞外的其他單詞首字母應該大寫。如:
dwUserInputValue。
3.2函數命名
函數命名原則與變量命名原則基本相同。對于初學者,函數命名可以采用“FunctionName”的形式。
4 其它一些小技巧和要求
l?函數一般情況下應該少于100行
l?函數定義一定要包含返回類型,沒有返回類型加void
l?寫比較表達式時,將常量放在左邊
10?==?n
NULL?!=?pInt
l?指針變量總是要初始或重置為NULL
l?使用{}包含復合語句,即使是只有一行,如:
if?(1?==?a)
{
????x?=?5;
}總結
以上是生活随笔為你收集整理的C语言 程序代码编写规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows环境搭建hadoop
- 下一篇: PHP中的常用函数