




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2.3程序代碼的版式
版式雖然不會(huì)影響程序的功能,但會(huì)影響可讀性。程序的版式追求清晰、美觀,是程序風(fēng)格的重要構(gòu)成因素。一、
空行空行起著分隔程序段落的作用??招械皿w將使程序的布局更加清晰??招胁粫?huì)浪費(fèi)內(nèi)存,雖然打印含有空行的程序是會(huì)多消耗一些紙張,但是值得。所以要舍得用空行?!疽?guī)則1】在每個(gè)類聲明之后、每個(gè)函數(shù)定義結(jié)束之后都要加空行。參見示例1(a)【規(guī)則2】在一個(gè)函數(shù)體內(nèi),邏揖上密切相關(guān)的語句之間不加空行,其它地方應(yīng)加空行分隔。參見示例1(b)二、
代碼行及行內(nèi)空格【規(guī)則1】一行代碼只做一件事情,如只定義一個(gè)變量,或只寫一條語句。這樣的代碼容易閱讀,并且方便于寫注釋。【規(guī)則2】if、for、while、do等語句自占一行,執(zhí)行語句不得緊跟其后。不論執(zhí)行語句有多少都要加{
}。這樣可以防止書寫失誤。示例2(a)為風(fēng)格良好的代碼行,示例2(b)為風(fēng)格不良的代碼行?!窘ㄗh1】盡可能在定義變量的同時(shí)初始化該變量(就近原則)如果變量的引用處和其定義處相隔比較遠(yuǎn),變量的初始化很容易被忘記。如果引用了未被初始化的變量,可能會(huì)導(dǎo)致程序錯(cuò)誤。本建議可以減少隱患?!疽?guī)則3】關(guān)鍵字之后要留空格。象const、virtual、inline、case等關(guān)鍵字之后至少要留一個(gè)空格,否則無法辨析關(guān)鍵字。象if、for、while等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào)‘(’,以突出關(guān)鍵字。【規(guī)則4】函數(shù)名之后不要留空格,緊跟左括號(hào)‘(’,以與關(guān)鍵字區(qū)別?!疽?guī)則5】‘(’向后緊跟,‘)’、‘,’、‘;’向前緊跟,緊跟處不留空格?!疽?guī)則6】‘,’之后要留空格,如Function(x,y,z)。如果‘;’不是一行的結(jié)束符號(hào),其后要留空格,如
for(initialization;condition;update)?!疽?guī)則7】賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后應(yīng)當(dāng)加空格。【規(guī)則8】一元操作符如“!”、“~”、“++”、“--”、“&”(地址運(yùn)算符)等前后不加空格?!疽?guī)則9】象“[]”、“.”、“->”這類操作符前后不加空格?!窘ㄗh2】對(duì)于表達(dá)式比較長(zhǎng)的for語句和if語句,為了緊湊起見可以適當(dāng)?shù)厝サ粢恍┛崭瘢鏵or(i=0;i<10;i++)和if((a<=b)&&(c<=d))三、對(duì)齊與縮進(jìn)【規(guī)則1】程序的分界符‘{’和‘}’應(yīng)獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語句左對(duì)齊?!疽?guī)則2】{
}之內(nèi)的代碼塊在‘{’右邊數(shù)格處左對(duì)齊。示例4(a)為風(fēng)格良好的對(duì)齊,示例4(b)為風(fēng)格不良的對(duì)齊。四、長(zhǎng)行拆分:【規(guī)則1】代碼行最大長(zhǎng)度宜控制在70至80個(gè)字符以內(nèi)。代碼行不要過長(zhǎng),否則眼睛看不過來,也不便于打印?!疽?guī)則2】長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn),使排版整齊,語句可讀。五、修飾符的位置修飾符*和&應(yīng)該靠近數(shù)據(jù)類型還是靠近變量名,是個(gè)有爭(zhēng)議的話題。若將修飾符*靠近數(shù)據(jù)類型,例如:int*x;從語義上講此寫法比較直觀,即x是int
類型的指針。上述寫法的弊端是容易引起誤解,例如:int*x,y;此處y容易被誤解為指針變量。雖然將x和y分行定義可以避免誤解,但并不是人人都愿意這樣做?!窘ㄗh1】應(yīng)當(dāng)將修飾符*和&緊靠變量名或者用typedef做個(gè)類型映射。例如:char*name;int*x,y; //此處y不會(huì)被誤解為指針六、注釋的風(fēng)格
C語言的注釋符為“/*…*/”。C++語言中,程序塊的注釋常采用“/*…*/”,行注釋一般采用“//…”。注釋通常用于:(1)版本、版權(quán)聲明;(2)函數(shù)接口說明;(3)重要的代碼行或段落提示。雖然注釋有助于理解代碼,但注意不可過多地使用注釋。
【規(guī)則1】注釋是對(duì)代碼的“提示”,而不是文檔。程序中的注釋不可喧賓奪主,注釋太多了會(huì)讓人眼花繚亂。注釋的花樣要少【規(guī)則2】如果代碼本來就是清楚的,則不必加注釋。否則多此一舉,令人厭煩。例如:i++; //i加1,多余的注釋【規(guī)則3】邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,以保證注釋與代碼的一致性。不再有用的注釋要?jiǎng)h除。【規(guī)則4】注釋應(yīng)當(dāng)準(zhǔn)確、易懂,防止注釋有二義性。錯(cuò)誤的注釋不但無益反而有害【規(guī)則5】盡量避免在注釋中使用縮寫,特別是不常用縮寫?!疽?guī)則6】注釋的位置應(yīng)與被描述的代碼相鄰,可以放在代碼的上方或右方,不可放在下方。【規(guī)則7】當(dāng)代碼比較長(zhǎng),特別是有多重嵌套時(shí),應(yīng)當(dāng)在一些段落的結(jié)束處加注釋,便于閱讀。七、類的版式類可以將數(shù)據(jù)和函數(shù)封裝在一起,其中函數(shù)表示了類的行為(或稱服務(wù))。類提供關(guān)鍵字public、protected和private,分別用于聲明哪些數(shù)據(jù)和函數(shù)是公有的、受保護(hù)的或者是私有的。這樣可以達(dá)到信息隱藏的目的,即讓類僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容。我們不可以濫用類的封裝功能,不要把它當(dāng)成火鍋,什么東西都往里扔。類的版式主要有兩種方式:(1)將private類型的數(shù)據(jù)寫在前面,而將public類型的函數(shù)寫在后面,如示例6(a)。采用這種版式的程序員主張類的設(shè)計(jì)“以數(shù)據(jù)為中心”,重點(diǎn)關(guān)注類的內(nèi)部結(jié)構(gòu)。(2)將public類型的函數(shù)寫在前面,而將private類型的數(shù)據(jù)寫在后面,如示例6(b)采用這種版式的程序員主張類的設(shè)計(jì)“以行為為中心”,重點(diǎn)關(guān)注的是類應(yīng)該提供什么樣的接口(或服務(wù))。
很多C++教課書受到Biarne
Stroustrup第一本著作的影響,不知不覺地采用了“以數(shù)據(jù)為中心”的書寫方式,并不見得有多少道理。
建議讀者采用“以行為為中心”的書寫方式,即首先考慮類應(yīng)該提供什么樣的函數(shù)。這是很多人的經(jīng)驗(yàn)——“這樣做不僅讓自己在設(shè)計(jì)類時(shí)思路清晰,而且方便別人閱讀。因?yàn)橛脩糇铌P(guān)心的是接口,誰愿意先看到一堆私有數(shù)據(jù)成員!
應(yīng)試實(shí)例:
美國(guó)某著名計(jì)算機(jī)嵌入公司面試:
下面程序有2中寫法,你青睞哪種?為什么?
A:寫法1:if(‘A’==a){
a++;
}
寫法2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育素養(yǎng)考試題及答案
- 白酒電商測(cè)試題及答案
- 廈門市五顯中學(xué)-學(xué)年高三政治過關(guān)訓(xùn)練(全社會(huì)用現(xiàn)金支付的商品銷售)
- 標(biāo)準(zhǔn)化考評(píng)員試題及答案
- 紡織生產(chǎn)質(zhì)量管理試題及答案
- 護(hù)理高級(jí)工試題及答案
- 2025年建筑安全員-C證考試(專職安全員)題庫及答案
- 激光技術(shù)在水處理中的創(chuàng)新應(yīng)用試題及答案
- 藥劑處方中常見錯(cuò)誤問題及答案
- 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師考試的應(yīng)試技巧試題及答案
- 殘疾學(xué)生送教上門工作手冊(cè)
- 北京市某別墅裝修改造工程施工組織設(shè)計(jì)
- GB/T 17395-2008無縫鋼管尺寸、外形、重量及允許偏差
- 全文《中國(guó)式現(xiàn)代化》PPT
- 藥品零售企業(yè)許可事項(xiàng)申請(qǐng)表模板
- 必修二英語單詞默寫
- 新人教版四年級(jí)數(shù)學(xué)下冊(cè)總復(fù)習(xí)專題一《四則運(yùn)算及運(yùn)算定律》課件
- 宋詞欣賞《虞美人·聽雨》課件
- 混合痔病歷范文
- 110kV線路光纜施工方案及安全管控
- 35KV高壓開關(guān)柜買賣合同
評(píng)論
0/150
提交評(píng)論