2. 程序的版式
? ? ? ?版式雖然不會影響程序的功能,但會影響可讀性。程序的版式追求清晰、美觀,是程序風(fēng)格的重要構(gòu)成因素??梢园殉绦虻陌媸奖扔鳛椤皶ā?。好的“書法”可讓人對程序一目了然,看得興致勃勃。差的程序“書法”如螃蟹爬行,讓人看得索然無味,更令維護(hù)者煩惱有加。
2.1 空行
? ? ?空行起著分隔程序段落的作用??招械皿w(不過多也不過少)將使程序的布局更加清晰。
(1)在每個類聲明之后、每個函數(shù)定義結(jié)束之后都要加空行。
(2)在一個函數(shù)體內(nèi),邏揖上密切相關(guān)的語句之間不加空行,其它地方應(yīng)加空行分隔
2.2 代碼行
(1)一行代碼只做一件事情,如只定義一個變量,或只寫一條語句
(2)if、for、while、do 等語句自占一行,執(zhí)行語句不得緊跟其后。不論執(zhí)行語句有多少都要加{}
(3)盡可能在定義變量的同時初始化該變量(就近原則)
2.3 代碼行內(nèi)的空格
(1)關(guān)鍵字之后要留空格。象const、virtual、inline、case 等關(guān)鍵字之后至少要留一個空格,否則無法辨析關(guān)鍵字。象if、for、while 等關(guān)鍵字之后應(yīng)留一個空格再跟左括號‘(’,以突出關(guān)鍵字。
(2)函數(shù)名之后不要留空格,緊跟左括號‘(’,以與關(guān)鍵字區(qū)別
(3)‘(’向后緊跟,‘)’、‘,’、‘;’向前緊跟,緊跟處不留空格
(4),’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的結(jié)束符號,其后要留空格
(5)賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后應(yīng)當(dāng)加空格。
(6)一元操作符如“!”、“~”、“++”、“--”、“&”(地址運(yùn)算符)等前后不加空格。
(7)象“[]”、“.”、“->”這類操作符前后不加空格
(8)對于表達(dá)式比較長的for 語句和if 語句,為了緊湊起見可以適當(dāng)?shù)厝サ粢恍┛崭?/p>
2.4 對齊
(1)程序的分界符‘{’和‘}’應(yīng)獨(dú)占一行并且位于同一列,同時與引用它們的語句左對齊
(2){ }之內(nèi)的代碼塊在‘{’右邊數(shù)格處左對齊
2.5?長行拆分
(1)代碼行最大長度宜控制在70 至80 個字符以內(nèi)
(2)長表達(dá)式要在低優(yōu)先級操作符處拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn),使排版整齊,語句可讀
2.6 修飾符的位置
(1)應(yīng)當(dāng)將修飾符 * 和& 緊靠變量名,如int *x, y; // 此處y 不會被誤解為指針
2.7 注釋
(1)版本、版權(quán)聲明;
(2)函數(shù)接口說明;
(3)重要的代碼行或段落提示
2.8 類的版式
類可以將數(shù)據(jù)和函數(shù)封裝在一起,其中函數(shù)表示了類的行為(或稱服務(wù))。類的版式主要有兩種方式:
(1)將private 類型的數(shù)據(jù)寫在前面,而將public 類型的函數(shù)寫在后面,采用這種版式的程序員主張類的設(shè)計(jì)“以數(shù)據(jù)為中心”,重點(diǎn)關(guān)注類的內(nèi)部結(jié)構(gòu)。
(2)2)將public 類型的函數(shù)寫在前面,而將private 類型的數(shù)據(jù)寫在后面,采用這種版式的程序員主張類的設(shè)計(jì)“以行為為中心”,重點(diǎn)關(guān)注的是類應(yīng)該提供什么樣的接口(或務(wù))。