高質(zhì)量C++編程指南:程序代碼的版式_第1頁
高質(zhì)量C++編程指南:程序代碼的版式_第2頁
高質(zhì)量C++編程指南:程序代碼的版式_第3頁
高質(zhì)量C++編程指南:程序代碼的版式_第4頁
高質(zhì)量C++編程指南:程序代碼的版式_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2.3程序代碼的版式

版式雖然不會影響程序的功能,但會影響可讀性。程序的版式追求清晰、美觀,是程序風格的重要構成因素。一、

空行空行起著分隔程序段落的作用??招械皿w將使程序的布局更加清晰??招胁粫速M內(nèi)存,雖然打印含有空行的程序是會多消耗一些紙張,但是值得。所以要舍得用空行。【規(guī)則1】在每個類聲明之后、每個函數(shù)定義結束之后都要加空行。參見示例1(a)【規(guī)則2】在一個函數(shù)體內(nèi),邏揖上密切相關的語句之間不加空行,其它地方應加空行分隔。參見示例1(b)二、

代碼行及行內(nèi)空格【規(guī)則1】一行代碼只做一件事情,如只定義一個變量,或只寫一條語句。這樣的代碼容易閱讀,并且方便于寫注釋?!疽?guī)則2】if、for、while、do等語句自占一行,執(zhí)行語句不得緊跟其后。不論執(zhí)行語句有多少都要加{

}。這樣可以防止書寫失誤。示例2(a)為風格良好的代碼行,示例2(b)為風格不良的代碼行?!窘ㄗh1】盡可能在定義變量的同時初始化該變量(就近原則)如果變量的引用處和其定義處相隔比較遠,變量的初始化很容易被忘記。如果引用了未被初始化的變量,可能會導致程序錯誤。本建議可以減少隱患?!疽?guī)則3】關鍵字之后要留空格。象const、virtual、inline、case等關鍵字之后至少要留一個空格,否則無法辨析關鍵字。象if、for、while等關鍵字之后應留一個空格再跟左括號‘(’,以突出關鍵字?!疽?guī)則4】函數(shù)名之后不要留空格,緊跟左括號‘(’,以與關鍵字區(qū)別?!疽?guī)則5】‘(’向后緊跟,‘)’、‘,’、‘;’向前緊跟,緊跟處不留空格?!疽?guī)則6】‘,’之后要留空格,如Function(x,y,z)。如果‘;’不是一行的結束符號,其后要留空格,如

for(initialization;condition;update)?!疽?guī)則7】賦值操作符、比較操作符、算術操作符、邏輯操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后應當加空格。【規(guī)則8】一元操作符如“!”、“~”、“++”、“--”、“&”(地址運算符)等前后不加空格?!疽?guī)則9】象“[]”、“.”、“->”這類操作符前后不加空格?!窘ㄗh2】對于表達式比較長的for語句和if語句,為了緊湊起見可以適當?shù)厝サ粢恍┛崭瘢鏵or(i=0;i<10;i++)和if((a<=b)&&(c<=d))三、對齊與縮進【規(guī)則1】程序的分界符‘{’和‘}’應獨占一行并且位于同一列,同時與引用它們的語句左對齊。【規(guī)則2】{

}之內(nèi)的代碼塊在‘{’右邊數(shù)格處左對齊。示例4(a)為風格良好的對齊,示例4(b)為風格不良的對齊。四、長行拆分:【規(guī)則1】代碼行最大長度宜控制在70至80個字符以內(nèi)。代碼行不要過長,否則眼睛看不過來,也不便于打印。【規(guī)則2】長表達式要在低優(yōu)先級操作符處拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要進行適當?shù)目s進,使排版整齊,語句可讀。五、修飾符的位置修飾符*和&應該靠近數(shù)據(jù)類型還是靠近變量名,是個有爭議的話題。若將修飾符*靠近數(shù)據(jù)類型,例如:int*x;從語義上講此寫法比較直觀,即x是int

類型的指針。上述寫法的弊端是容易引起誤解,例如:int*x,y;此處y容易被誤解為指針變量。雖然將x和y分行定義可以避免誤解,但并不是人人都愿意這樣做?!窘ㄗh1】應當將修飾符*和&緊靠變量名或者用typedef做個類型映射。例如:char*name;int*x,y; //此處y不會被誤解為指針六、注釋的風格

C語言的注釋符為“/*…*/”。C++語言中,程序塊的注釋常采用“/*…*/”,行注釋一般采用“//…”。注釋通常用于:(1)版本、版權聲明;(2)函數(shù)接口說明;(3)重要的代碼行或段落提示。雖然注釋有助于理解代碼,但注意不可過多地使用注釋。

【規(guī)則1】注釋是對代碼的“提示”,而不是文檔。程序中的注釋不可喧賓奪主,注釋太多了會讓人眼花繚亂。注釋的花樣要少【規(guī)則2】如果代碼本來就是清楚的,則不必加注釋。否則多此一舉,令人厭煩。例如:i++; //i加1,多余的注釋【規(guī)則3】邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除?!疽?guī)則4】注釋應當準確、易懂,防止注釋有二義性。錯誤的注釋不但無益反而有害【規(guī)則5】盡量避免在注釋中使用縮寫,特別是不常用縮寫。【規(guī)則6】注釋的位置應與被描述的代碼相鄰,可以放在代碼的上方或右方,不可放在下方。【規(guī)則7】當代碼比較長,特別是有多重嵌套時,應當在一些段落的結束處加注釋,便于閱讀。七、類的版式類可以將數(shù)據(jù)和函數(shù)封裝在一起,其中函數(shù)表示了類的行為(或稱服務)。類提供關鍵字public、protected和private,分別用于聲明哪些數(shù)據(jù)和函數(shù)是公有的、受保護的或者是私有的。這樣可以達到信息隱藏的目的,即讓類僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容。我們不可以濫用類的封裝功能,不要把它當成火鍋,什么東西都往里扔。類的版式主要有兩種方式:(1)將private類型的數(shù)據(jù)寫在前面,而將public類型的函數(shù)寫在后面,如示例6(a)。采用這種版式的程序員主張類的設計“以數(shù)據(jù)為中心”,重點關注類的內(nèi)部結構。(2)將public類型的函數(shù)寫在前面,而將private類型的數(shù)據(jù)寫在后面,如示例6(b)采用這種版式的程序員主張類的設計“以行為為中心”,重點關注的是類應該提供什么樣的接口(或服務)。

很多C++教課書受到Biarne

Stroustrup第一本著作的影響,不知不覺地采用了“以數(shù)據(jù)為中心”的書寫方式,并不見得有多少道理。

建議讀者采用“以行為為中心”的書寫方式,即首先考慮類應該提供什么樣的函數(shù)。這是很多人的經(jīng)驗——“這樣做不僅讓自己在設計類時思路清晰,而且方便別人閱讀。因為用戶最關心的是接口,誰愿意先看到一堆私有數(shù)據(jù)成員!

應試實例:

美國某著名計算機嵌入公司面試:

下面程序有2中寫法,你青睞哪種?為什么?

A:寫法1:if(‘A’==a){

a++;

}

寫法2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論