教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

c/c++培訓(xùn)之漫談軟件編碼風(fēng)格

更新時(shí)間:2016年08月01日09時(shí)30分 來(lái)源:傳智播客C/C++學(xué)科 瀏覽次數(shù):

漫談軟件編碼風(fēng)格
  
    通過(guò)建立代碼編寫(xiě)規(guī)范,形成開(kāi)發(fā)小組編碼約定,提高程序的可靠性、可讀性、可修改性、可維護(hù)性、一致性,保證程序代碼的質(zhì)量,繼承軟件開(kāi)發(fā)成果,充分利用資源。提高程序的可繼承性,使開(kāi)發(fā)人員之間的工作成果可以共享。代碼的風(fēng)格主要有以下幾點(diǎn):
1、縮進(jìn)
縮進(jìn)以4個(gè)空格為單位。預(yù)處理語(yǔ)句、全局?jǐn)?shù)據(jù)、函數(shù)原型、標(biāo)題、附加說(shuō)明、函數(shù)說(shuō)明、標(biāo)號(hào)等均頂格書(shū)寫(xiě)。語(yǔ)句塊的“{”“}”配對(duì)對(duì)齊,并與其前一行對(duì)齊,語(yǔ)句塊類的語(yǔ)句縮進(jìn)建議每個(gè)“{”“}”單獨(dú)占一行。
2、空格
變量、類、常量數(shù)據(jù)和函數(shù)在其類型,修飾(如 __fastcall 等)名稱之間適當(dāng)空格并據(jù)情況對(duì)齊。關(guān)鍵字原則上空一格,如: if ( ... ) 等,運(yùn)算符的空格規(guī)定如下:“::”、“->”、“[”、“]”、“++”、“--”、“~”、“!”、“+”、“-”(指正負(fù)號(hào)), “&”(取址或引用)、“*”(指使用指針時(shí))等幾個(gè)運(yùn)算符兩邊不加空格(其中單目運(yùn)算符系指與操作數(shù)相連的一邊),其它運(yùn)算符(包括大多數(shù)二目運(yùn)算符和三目運(yùn)算符“?:”兩邊均加一空格,“(”、“)”運(yùn)算符在其內(nèi)側(cè)空一格,在作函數(shù)定義時(shí)還可據(jù)情況多空或不空格來(lái)對(duì)齊,但在函數(shù)實(shí)現(xiàn)時(shí)可以不用。“,”運(yùn)算符只在其后空一格,需對(duì)齊時(shí)也可不空或多空格,“sizeof”運(yùn)算符建議也在其后空一格,不論是否有括號(hào),對(duì)語(yǔ)句行后加的注釋?xiě)?yīng)用適當(dāng)空格與語(yǔ)句隔開(kāi)并盡可能對(duì)齊。
3、對(duì)齊
原則上關(guān)系密切的行應(yīng)對(duì)齊,對(duì)齊包括類型、修飾、名稱、參數(shù)等各部分對(duì)齊。另每一行的長(zhǎng)度不應(yīng)超過(guò)屏幕太多,必要時(shí)適當(dāng)換行,換行時(shí)盡可能在“,”處或運(yùn)算符處,換行后最好以運(yùn)算符打頭,并且以下各行均以該語(yǔ)句首行縮進(jìn),但該語(yǔ)句仍以首行的縮進(jìn)為準(zhǔn),即如其下一行為“{”應(yīng)與首行對(duì)齊。
變量定義最好通過(guò)添加空格形成對(duì)齊,同一類型的變量最好放在一起。
4、空行
程序文件結(jié)構(gòu)各部分之間空兩行,若不必要也可只空一行,各函數(shù)實(shí)現(xiàn)之間一般空兩行,由于BCB會(huì)自動(dòng)產(chǎn)生一行“//------”做分隔,另因每個(gè)函數(shù)還要有函數(shù)說(shuō)明注釋,故通常只需空一行或不空,但對(duì)于沒(méi)有函數(shù)說(shuō)明的情況至少應(yīng)再空一行。對(duì)自己寫(xiě)的函數(shù),建議也加上“//------”做分隔。函數(shù)內(nèi)部數(shù)據(jù)與代碼之間應(yīng)空至少一行,代碼中適當(dāng)處應(yīng)以空行空開(kāi),建議在代碼中出現(xiàn)變量聲明時(shí),在其前空一行。類中四個(gè)“p”之間至少空一行,在其中的數(shù)據(jù)與函數(shù)之間也應(yīng)空行。
5、注釋
對(duì)注釋有以下三點(diǎn)要求:
A.必須是有意義。
B.必須正確的描述了程序。
C.必須是最新的。
注釋必不可少,但也不應(yīng)過(guò)多,以下是四種必要的注釋:
A.標(biāo)題、附加說(shuō)明。
B.函數(shù)說(shuō)明。對(duì)幾乎每個(gè)函數(shù)都應(yīng)有適當(dāng)?shù)恼f(shuō)明,通常加在函數(shù)實(shí)現(xiàn)之前,在沒(méi)有函數(shù)實(shí)現(xiàn)部分的情況下則加在函數(shù)原型前,其內(nèi)容主要是函數(shù)的功能、目的、算法等說(shuō)明,參數(shù)說(shuō)明、返回值說(shuō)明等,必要時(shí)還要有一些如特別的軟硬件要求等說(shuō)明。
C.在代碼不明晰或不可移植處必須有一定的說(shuō)明。
D.及少量的其它注釋。
注釋有塊注釋和行注釋兩種,分別是指:“/**/”和“//”建議對(duì)A用塊注釋,D用行注釋,B、C則視情況而定,但應(yīng)統(tǒng)一,至少在一個(gè)單元中B類注釋形式應(yīng)統(tǒng)一。
6、代碼長(zhǎng)度:
對(duì)于每一個(gè)函數(shù)建議盡可能控制其代碼長(zhǎng)度為53行左右,超過(guò)53行的代碼要重新考慮將其拆分為兩個(gè)或兩個(gè)以上的函數(shù)。函數(shù)拆分規(guī)則應(yīng)該一不破壞原有算法為基礎(chǔ),同時(shí)拆分出來(lái)的部分應(yīng)該是可以重復(fù)利用的。對(duì)于在多個(gè)模塊或者窗體中都要用到的重復(fù)性代碼,完全可以將起獨(dú)立成為一個(gè)具備公用性質(zhì)的函數(shù),放置于一個(gè)公用模塊中(Common.cpp/Common.h)。
 
 本文版權(quán)歸傳智播客C++培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客C/C++培訓(xùn)學(xué)院
首發(fā):http://www.xamj520.com/c/ 
 
0 分享到:
和我們?cè)诰€交談!