新手初學(xué)C語(yǔ)言編程,編碼規(guī)范

C語(yǔ)言是面向過程的,而C++是面向?qū)ο蟮?/div>

C語(yǔ)言編碼規(guī)范

1 排版規(guī)則

1) 程序應(yīng)采用縮進(jìn)風(fēng)格編寫,每層縮進(jìn)使用一個(gè)制表位(TAB),類定義、方法都應(yīng)頂格書寫;

2) 源程序建議使用英文書寫,盡量不含有中文。每行不超過80字符。對(duì)于較長(zhǎng)的語(yǔ)句(>80字符)要分成多行書寫,長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首,劃分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn),使排版整齊,語(yǔ)句可讀;循環(huán)、判斷等語(yǔ)句中若有較長(zhǎng)的表達(dá)式或語(yǔ)句,則要進(jìn)行適應(yīng)的劃分;

3) 左花括號(hào)要另起一行,不能跟在上一行的行末;

4) 一個(gè)變量定義占一行,一個(gè)語(yǔ)句占一行;

5) 對(duì)獨(dú)立的程序塊之間、變量說明之后必須加空行;

6) 在結(jié)構(gòu)成員賦值等情況,等號(hào)對(duì)齊,最少留一個(gè)空格;

7) 若函數(shù)或過程中的參數(shù)較長(zhǎng),則要進(jìn)行適當(dāng)?shù)膭澐帧?/p>

8) 形參的排序風(fēng)格:

? 最常使用的參數(shù)放在第一位;

? 輸入?yún)?shù)列表應(yīng)放在輸出參數(shù)列表的左邊;

? 將通用的參數(shù)放在特殊的參數(shù)的左邊。

2 命名規(guī)范

2.1 應(yīng)用程序的命名

“系統(tǒng)簡(jiǎn)稱”+模塊名稱

2.2 子模塊的命名

每個(gè)子模塊的名字應(yīng)該由描述模塊功能的1-3以單詞組成。每個(gè)單詞的首字母應(yīng)大寫。在這些單詞中可以使用一些較通用的縮寫。

2.3 變量的命名

變量的命名的基本原則是使得變量的含義能夠從名字中直接理解??梢杂枚鄠€(gè)英文單詞拼寫而成,每個(gè)英文單詞的首字母要大寫,其中英文單詞有縮寫的可用縮寫;變量的前綴表示該變量的類型;對(duì)于作用域跨越10行以上的變量名稱不能少于4個(gè)字符,除循環(huán)變量,累加變量外不得使用I、j、k等名稱的變量。變量分為取全局變量和局部變量,對(duì)于全局變量以加前綴“g_”來區(qū)分。

使用有意義的英語(yǔ)單詞,使用大小寫分隔,每個(gè)單詞的第一個(gè)字母為大寫

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 二六三,六八八,二七六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

考慮到習(xí)慣性和簡(jiǎn)潔性,對(duì)于按常規(guī)使用的局部變量允許采用極短的名字,如用n、i作為循環(huán)變量,p、q作為指針等。另外,要注意的是:全局變量在程序中不要定義太多,能用局部變量的就用局部變量。如果要使用相關(guān)的變量,建議采用類的方式或者結(jié)構(gòu)的方式存放,以減少具體變量的個(gè)數(shù)。

2.4 常量的命名

常量所有的字母均為大寫。并且單詞之間使用下劃線”_”隔開。

2.5 函數(shù)/過程的命名

函數(shù)/過程名稱應(yīng)該盡量使用能夠表達(dá)函數(shù)功能的英文名稱,函數(shù)名稱中應(yīng)該禁止使用如同function1,function2等含義不清的名稱。單詞間應(yīng)該使用大小寫分隔。全局函數(shù)/過程名稱以“g_”前綴開始。

2.6 接口命名

接口名稱要以大寫字母開頭。如果接口包含多個(gè)單詞,每個(gè)單詞的首字母大寫,其他字母小寫,如果,這些單詞是縮略語(yǔ)(例如XML),也要首字母大寫,其他字母小寫(寫為Xml)。

2.7 類的命名

類名稱要以大寫字母開頭;

類名稱如果包含多個(gè)單詞,每個(gè)單詞的首字母要大寫,其他字母小寫;如果這些單詞是縮略語(yǔ)(例如XML),也要首字母大寫,其他字母小寫(寫作Xml);

類名稱應(yīng)該是一個(gè)名詞或名詞短語(yǔ);

類成員變量的命名規(guī)則與上述規(guī)則相同,但是要以“m_”開始,表示其為成員變量(Member);

類名稱不能出現(xiàn)下劃線。

2.8 方法的命名

方法名稱以小寫字母開頭。

方法名稱如果包含多個(gè)單詞,除了第一個(gè)單詞外,每個(gè)單詞的首字母大寫,其它字

母小寫。如果這些單詞是縮略語(yǔ)(例如XML),也要首字母大寫,其它字母小寫(寫作Xml)。

方法名稱應(yīng)該是一個(gè)動(dòng)詞或動(dòng)名詞短語(yǔ),意思是“完成什么功能”,“執(zhí)行什么操作”。

2.9 數(shù)據(jù)庫(kù)的命名

2.9.1 表:

采用“模塊名簡(jiǎn)稱+前綴+’_’+表名”的命名規(guī)則。表名以能理解該表的內(nèi)容為原則,

可由中文表示,也可由代表此表含義的英文字母組成;首字母大寫;前綴代表此表類別。

2.9.2 視圖:

采用“模塊名+’_’+視圖名+’視圖’”的命名規(guī)則,通常由8個(gè)以內(nèi)漢字組成。

2.9.3 存儲(chǔ)過程:

采用“Proc+模塊名+’_’+存儲(chǔ)過程名”的命名規(guī)則。

2.9.4 觸發(fā)器:

采用“模塊名+’’+觸發(fā)類型+’’+表名”的命名規(guī)則,如果有多個(gè)觸發(fā)類型,則可以疊加在一起。

2.9.5 字段:

字段的命名以能理解該字段的含義為原則,通常由多個(gè)英文單詞加前綴拼寫而成,而組成字段名稱的首字母應(yīng)大寫。單詞有縮寫的可用縮寫。字段的前綴表示該字段的數(shù)據(jù)類型,其取值詳見“數(shù)據(jù)類型”描述。原則上,字段的命名長(zhǎng)度不超過18字節(jié);描述字段的中文名稱,用數(shù)據(jù)庫(kù)創(chuàng)建工具設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),需要輸入。

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ù)名列表中的每個(gè)參數(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ù)名列表中的每個(gè)參數(shù)后增加該參數(shù)的注釋。另外輸出參數(shù)一般以指針或應(yīng)用輸出。

3.3 返回值的約定

每個(gè)函數(shù)均有返回值,除非操作非常簡(jiǎn)單。對(duì)于有不同狀態(tài)的返回值,建議用long型的返回值,0為成功。對(duì)于出錯(cuò)類返回值,在同一層次的模塊,用統(tǒng)一代碼表示。在輸出參數(shù)說明區(qū)后跟返回值說明區(qū),用“返回值”或“Return values”標(biāo)記。返回值說明,要說明各種不同類型返回值以及它們的含義。

4 注釋約定

在軟件中對(duì)每個(gè)文件頭,自定義函數(shù)和變量,重要的處理過程都要有必要的注釋。

4.1 源程序頭的注釋和規(guī)范

每個(gè)源程序(包括存儲(chǔ)過程)必須有頭部說明、版本說明和函數(shù)結(jié)構(gòu)三個(gè)部分:

源程序頭部說明

FileName:

Copy Right:?

System:

Module:

Function:?

See also:?

Author:

Create Date: 本程序的外部名字(如 *.prg, *.cpp)

xxx公司 版權(quán)所有 版本信息

本文件所在的系統(tǒng)或工程的名字

本文件所在的功能模塊名稱?

簡(jiǎn)要說明本程序的功能

相關(guān)詳細(xì)設(shè)計(jì)文檔號(hào)

編碼人員

創(chuàng)建日期

源程序版本說明

Editor:

Version:

Edit Date: 修改人員?

版本號(hào)

修改日期

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 二六三,六八八,二七六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

4.2 函數(shù)頭的注釋和規(guī)范

Name:

Function:

Input:

Output:

Return:

Syntax:

Env:

Calling: 函數(shù)名稱

簡(jiǎn)述函數(shù)或過程的功能

[參數(shù)1] - [說明…]

[參數(shù)2] - [說明…]

[參數(shù)1] - [說明…]

[參數(shù)2] - [說明…]

[返回碼1] - [說明…]

[返回碼2] - [說明…]

調(diào)用語(yǔ)法(可選)

環(huán)境要求和影響(可選的)

被調(diào)用的函數(shù)(可選的)

4.3 變量注釋

直接在變量后面注明變量的用途和取值約定,例如:

4.4 類型定義注釋

指類和記錄等等定義的注釋。在注釋中標(biāo)明定義的用途。

4.5 區(qū)的注釋

同一個(gè)類的成員方法要求排列在一起,共同協(xié)作而實(shí)現(xiàn)同一個(gè)功能的函數(shù)和過程要求排列在一起。代碼通常使用幾個(gè)函數(shù)和過程來實(shí)現(xiàn)某一項(xiàng)功能,這時(shí)候需要使用區(qū)注釋將這些具有共同目的的函數(shù)和過程標(biāo)明出來。

使用整行的”*”作為隔離行,讓程序清晰可讀。

一般刪除的代碼不建議直接刪除,最好用“//”注釋起來。

4.6 代碼中的注釋

在代碼中要求注釋的地方有:

? 代碼中的關(guān)鍵部分;

? 在使用特殊算法或者邏輯性較強(qiáng)的代碼;

? 在修改或刪除代碼部分,需要加注釋;修改/刪除人,目的。

5 變量的作用范圍

盡量做到縮小變量的作用范圍,對(duì)于變量是指針的,應(yīng)遵循以下約定:

? 在局部分配的空間在局部釋放。

? 函數(shù)體內(nèi)不能分配空間并將空間指針作為函數(shù)參數(shù)返回。

? 動(dòng)態(tài)全局空間在程序結(jié)束時(shí)一定要釋放。

? 所有動(dòng)態(tài)分配的空間在對(duì)應(yīng)層次的模塊釋放,并且用完馬上釋放。不重復(fù)釋放相

同的指針。

6 函數(shù)/過程的定義

在函數(shù)的定義處應(yīng)當(dāng)增加本函數(shù)的功能描述的注釋。用一句話描述清楚功能。可用英文或中文。功能注釋格式要求所有代碼一致。

7 函數(shù)業(yè)務(wù)流程的定義

在函數(shù)功能描述后,要增加函數(shù)的主要業(yè)務(wù)流程注釋??梢杂枚嘈忻枋?,以解釋清楚業(yè)務(wù)流程為主??捎糜⑽幕蛑形?。業(yè)務(wù)流程注釋格式要求所有代碼一致。

業(yè)務(wù)流程注釋可以盡量詳細(xì),注釋的長(zhǎng)度可以與代碼長(zhǎng)度差不多,但是不要太長(zhǎng)。

比如處理N階乘的函數(shù)業(yè)務(wù)流程定義如下:

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 二六三,六八八,二七六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

這些是C/C++能做的

服務(wù)器開發(fā)工程師、人工智能、云計(jì)算工程師、信息安全(黑客反黑客)、大數(shù)據(jù) 、數(shù)據(jù)平臺(tái)、嵌入式工程師、流媒體服務(wù)器、數(shù)據(jù)控解、圖像處理、音頻視頻開發(fā)工程師、游戲服務(wù)器、分布式系統(tǒng)、游戲輔助等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容