編碼規(guī)范學(xué)習(xí)記錄-精華總結(jié)_第1頁(yè)
編碼規(guī)范學(xué)習(xí)記錄-精華總結(jié)_第2頁(yè)
編碼規(guī)范學(xué)習(xí)記錄-精華總結(jié)_第3頁(yè)
編碼規(guī)范學(xué)習(xí)記錄-精華總結(jié)_第4頁(yè)
編碼規(guī)范學(xué)習(xí)記錄-精華總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 2.1.4.方法和函數(shù)的布局(適用于C/C+)對(duì)于有較多參數(shù)的函數(shù)的寫法如果參數(shù)較多,一行寫不下,我們應(yīng)該分成幾行來(lái)寫,并且每個(gè)參數(shù)都另起一行對(duì)齊: int AnyMethod(int argl,int arg2,int arg3, int arg4);2縮進(jìn)的時(shí)候,每一層縮進(jìn) 3, 4,或8個(gè)空格。(推薦使用4個(gè)空格)2.4.保證一行只寫一條語(yǔ)句(適用于C/C+)一行最多只寫一條語(yǔ)句一行只定義一個(gè)變量例如:不要象下面這樣:char *a, *x;要象這樣:char* a= 0;/文檔說(shuō)明char* x= 0; /文檔說(shuō)明2.5.1.花括號(hào)的位置在關(guān)鍵字的下一行單獨(dú)放置括號(hào),并且與關(guān)鍵字對(duì)

2、齊,如:if (condition).什么時(shí)候應(yīng)使用花括號(hào)所有的if, while和do語(yǔ)句,要么用單行格式,要么使用花括號(hào)格式。使用花括號(hào)格式:if (1 = somevalue)(somevalue = 2;)單行格式:if (1 = somevalue) somevalue = 2;或下面這樣(對(duì)于這種寫法,建議使用花括號(hào)):if (1 = somevalue)somevalue = 2;在花括號(hào)結(jié)束的位置加上注釋是一個(gè)好習(xí)慣。假如前后花括號(hào)距離很遠(yuǎn),注釋就能幫你理解它是如何對(duì)應(yīng)的。圓括號(hào)與關(guān)鍵字之間應(yīng)放一個(gè)空格。If (.)圓括號(hào)與函數(shù)名之間不要有空格。Char Text(.)if e

3、lse 語(yǔ)句的格式(適用于C/C+)布局 if ( 條件)注釋( ) else if ( 條件)/注釋( ) else/注釋( )條件格式總是把常量放在等號(hào)或不等于號(hào)的左邊: if ( 6 = errorNum ).一個(gè)很重要的理由是,假如漏寫一個(gè)等號(hào),這種寫法會(huì)產(chǎn)生一個(gè)編譯錯(cuò)誤,有助于馬上發(fā)現(xiàn)問(wèn)題。直通的case語(yǔ)句,應(yīng)該放置一條注釋說(shuō)明這個(gè)case語(yǔ)句是直通到下一個(gè) case語(yǔ)句總是要寫default語(yǔ)句,不管是否是需要。在case中需要定義變量的時(shí)候,應(yīng)把所有代碼放在語(yǔ)句塊中。運(yùn)算符號(hào)的規(guī)則 (適用于C/C+)一元操作符如(!、等等)應(yīng)貼近操作對(duì)象。 如: if (!IsOk) retu

4、rn +v;二元操作符如(+、*、 =等等)應(yīng)在前后留空格。 如:if ( v1 = v2)return v1 * 3;+和-盡量使用前置運(yùn)算。在C+用,不管+i還是i+,總是+i更容易生成優(yōu)化代碼。如:for(int i = 0; i 10; +i)變量聲明語(yǔ)句塊(適用于C/C+)變量應(yīng)該是隨用隨聲明,不要集中在函數(shù)前 (有些C語(yǔ)言不支持,則不在此要求之列)。特別是在for語(yǔ)句的循環(huán)變量,應(yīng)只在 for語(yǔ)句中定義。如:for(int i = 0; i 10; +i)聲明語(yǔ)句塊必須要對(duì)齊類型,變量,等號(hào)和初始化值要分別對(duì)齊。例如:DWORDmDword;DWORD*mpDword;char*m

5、pChar;charmChar;mDword=0;mpDword=NULL;mpChar=NULL;mChar=0;不要用if語(yǔ)句的默認(rèn)方法測(cè)試非零值(適用于C/C+)If語(yǔ)句只用于檢測(cè)布爾值(bool),不要用默認(rèn)的方法測(cè)試非零值,比如: 建議使用:if (FAIL != f()不建議使用下面的表達(dá)式:if (f()不要直接使用數(shù)字(適用于C/C+)直接使用數(shù)字,會(huì)使源代碼難以理解和維護(hù)。如:if (22 = foo)else if (19 = foo)else if (16 = foo)else當(dāng)一段時(shí)間過(guò)去以后, start_thermo_nuclear_war(); refund_lo

6、tso_money(); infinite_loop(); cry_cause_im_lost(); 有誰(shuí)會(huì)記得22和19是什么意思?假如數(shù)字改變,或者是編寫錯(cuò)誤,更是難以發(fā)現(xiàn)問(wèn)題。我們可以用#define或者常量來(lái)改變這一狀況,如: #define PRESIDENT_WENT_CRAZY (22) const int WE_GOOFED= 19; enum THEY_DIDNT_PAY= 16if (PRESIDENT_WENT_CRAZY = foo) else if (WE_GOOFED= foo)else if (THEY_DIDNT_PAY = foo) else start_th

7、ermo_nuclear_war(); refund_lotso_money(); infinite_loop(); happy_days_i_know_why_im_here(); ;總結(jié)學(xué)習(xí):1. “()”內(nèi)語(yǔ)句之間無(wú)論“、都有個(gè)空格Eg: for (int i=0; i0) if (x100) x=x - 10; y; else x+; .在“()”前后的語(yǔ)句,語(yǔ)句與“()”留有一個(gè)空格Eg: if ( HeacHnext=NULL) return true;2 .命名規(guī)則起個(gè)合適的名字類的名稱(適用于C+)類的名稱要能告訴我們,這個(gè)類是什么。因此,類的名稱通常是名詞。類的名字不需要告訴

8、我們,它從哪個(gè)類繼承而來(lái)的。有時(shí)候加個(gè)后綴是很有用的。比如類是一個(gè)代理(Agents)時(shí),起名叫DownloadAgent更能表達(dá)真實(shí)的意圖。方法和函數(shù)的名稱(適用于 C/C+)方法和函數(shù)通常都要執(zhí)行某種行為,因此,名稱要能清楚的說(shuō)明它做什么:CheckForErrors()而不是 ErrorCheck(), DumpDataToFile()而不是 DataFile()。這樣也 可以很容易的區(qū)別函數(shù)和數(shù)據(jù)。函數(shù)名總以動(dòng)詞開頭,后面跟隨其它名稱。這樣看起來(lái)更自然些。可以加一些必要的后綴:Max -表不取最大值Cnt -表示當(dāng)前的計(jì)數(shù)值Key -表木鍵值例如:RetryMax表示可接收的最大數(shù),R

9、etryCnt表示當(dāng)前接收的數(shù)量。前綴也同樣有用:Is -用于詢問(wèn)一些問(wèn)題。只要看到Is開頭,就知道這是一個(gè)查詢。Get -用于獲取一個(gè)值。Set -用于設(shè)置一個(gè)值。例如:IsHitRetryLimit.類的命名(適用于C+)用大寫字母作為單詞的分隔,每個(gè)單詞的首字母大寫,其它字母均小寫。名字的第一個(gè)字母應(yīng)大寫不含有下劃線(_)例如:class NameOneTwo;class Name;類屬性的命名(適用于C+)屬性(通常是非公有數(shù)據(jù)成員)名字以字母 m開頭。在m后面,使用與類名相同的規(guī)則。m總是位于其它修飾符(如表示指針的p)的前面。例如:class NameOneTwo(public:i

10、ntVarAbc();intErrorNumber();private:intmVarAbc;intmErrorNumber;String*mpName;)方法和函數(shù)參數(shù)的命名(適用于C+)第一個(gè)字母必須小寫。第一個(gè)字母后面的單詞使用與類名相同的規(guī)則。例如:class NameOneTwo(public:intStartYourEngines(Engine& rSomeEngine,Engine& rAnotherEngine); )局部變量的命名(適用于C/C+)所有字母都用小寫使用下劃線二作為單詞的分隔。例如:intNameOneTwo:HandleError(int errorNumber) (int error= OsErr();Time time_of_error;ErrorProcessor error_processor;)指針變量的命名前綴(適用于 C/C+)指針變量多數(shù)情況應(yīng)在前面加p。星號(hào)*應(yīng)靠近類型,而不是變量名。例如:String* pName= new String;特別的:String* pName, name;應(yīng)分成兩行來(lái)寫:String* pName;String name;全局變量的命名前綴(適用于C/C+)全局變量總是以g作為前綴。 例如:Logger gLog;Lo

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論