一章:縮進(jìn)格式
對(duì)于函數(shù),選擇、循環(huán)控制,在進(jìn)入下級(jí)的程序段時(shí),為了使結(jié)構(gòu)清晰,一般將下級(jí)的程序段向后縮進(jìn)一段位置。縮進(jìn)的大小是為了清楚地定義一個(gè)塊的開(kāi)始和結(jié)束,特別是當(dāng)你已經(jīng)編寫(xiě)了很長(zhǎng)的代碼時(shí),你會(huì)發(fā)現(xiàn)一個(gè)大的縮進(jìn)格式使得你對(duì)程序的理解更容易,因?yàn)槌绦蚋袑哟胃校梢宰羁斓卣业叫枰榭吹某绦驂K。
建議使用一個(gè)TAB位置(8個(gè)字節(jié))進(jìn)行縮進(jìn),有些代碼編輯工具顯示一個(gè)TAB位置為4個(gè)字節(jié),這些都能使程序更清晰。8個(gè)字符的縮進(jìn)使得程序易讀,還有一個(gè)附加的好處,就是它能在你將程序變得嵌套層數(shù)太多的時(shí)候給你警告。這個(gè)時(shí)候,你應(yīng)該修改你的程序,太多的嵌套對(duì)于程序執(zhí)行的效率和易讀性都是致命的殺手,可以考慮使用函數(shù)或者改變程序結(jié)構(gòu)。“縮進(jìn)”有很多功能,特別是當(dāng)它建議你重新格式你的代碼的時(shí)候,你應(yīng)該看看幫助。但要記住:“縮進(jìn)”不是風(fēng)格很差的程序的萬(wàn)靈丹。
二章:大括號(hào)的位置
另外一個(gè)C程序編程風(fēng)格的問(wèn)題是對(duì)大括號(hào)的處理。同縮進(jìn)大小不同,幾乎沒(méi)有什么理由去選擇一種而不選擇另外一種風(fēng)格,但有一種推薦的風(fēng)格,它將開(kāi)始的大括號(hào)放在一行的最后,而將結(jié)束大括號(hào)放在一行的第一位,如下所示:一般情況下,有下列幾種書(shū)寫(xiě)方式:
(1)if(條件)
{
語(yǔ)句序列
}
(2)Kernighan和Ritchie的經(jīng)典方式
if(條件){
語(yǔ)句序列
}
(3)if(條件) { 語(yǔ)句序列}
推薦使用(1)方式,很明顯,這種方式能更清楚地看到程序塊的開(kāi)始和結(jié)束的位置。但對(duì)于很簡(jiǎn)單的程序塊,也可以使用(3)方式。
三章:命名系統(tǒng)
C是一種簡(jiǎn)潔的語(yǔ)言,那么,命名也應(yīng)該是簡(jiǎn)潔的。除了常用的規(guī)則,還要養(yǎng)成一個(gè)良好的命名習(xí)慣。不要使用漢語(yǔ)拼音命名,盡量使用英文單詞、常用的縮寫(xiě)、下劃線、數(shù)字等,這樣更容易理解變量的意義。但是也要避免過(guò)長(zhǎng)的變量名和函數(shù)名。例如:一個(gè)C語(yǔ)言的程序員會(huì)將之命名為“tmp”,這很容易書(shū)寫(xiě),且并不是那么難以理解。
四章:函數(shù)
一個(gè)函數(shù)的最大長(zhǎng)度和函數(shù)的復(fù)雜程度以及縮進(jìn)大小成反比。于是,如果你已經(jīng)寫(xiě)了簡(jiǎn)單但長(zhǎng)度較長(zhǎng)的的函數(shù),而且你已經(jīng)對(duì)不同的情況做了很多很小的事情,寫(xiě)一個(gè)更長(zhǎng)一點(diǎn)的函數(shù)也是無(wú)所謂的。另外一個(gè)需要考慮的是局部變量的數(shù)量。它們不應(yīng)該超過(guò)5~10個(gè),否則你有可能會(huì)出錯(cuò)。重新考慮這個(gè)函數(shù),將它們分割成更小的函數(shù)。人的大腦通常可以很容易地記住7件不同的事情,超過(guò)這個(gè)數(shù)量會(huì)引起混亂。
五章:注釋
注釋一般采取的兩種方式:對(duì)一個(gè)程序塊注釋和對(duì)一行程序注釋。
/*比較x,y大小*/
if(x>y)
{t=x;
x=y;
y=t; /*交換x,y*/
}
注釋是一件很好的事情,但是過(guò)多的注釋也是危險(xiǎn)的,不要試圖解釋你的代碼如何如何好。你應(yīng)該將代碼寫(xiě)得更好,而不是花費(fèi)大量的時(shí)間去解釋那些糟糕的代碼。
六章:空格與空行
不要讓自己的程序過(guò)于擁擠,這樣同樣影響可讀性,善于使用空格區(qū)分一句程序中的變量、符號(hào)、表達(dá)式等,使它們對(duì)照整齊或者更清晰,善于使用空行區(qū)分程序塊。
結(jié)束語(yǔ)對(duì)于這些約定俗成的風(fēng)格,不一定非要嚴(yán)格使用,你也可以有自己獨(dú)特的風(fēng)格。但是在團(tuán)隊(duì)開(kāi)發(fā)時(shí),一定要統(tǒng)一例如命名系統(tǒng)等主要的風(fēng)格,這樣團(tuán)隊(duì)成員協(xié)同工作能達(dá)到一個(gè)最好的效率。記住一點(diǎn),我們的目的應(yīng)該是寫(xiě)出可讀性、移植性、可維護(hù)性等更好的程序。