C語言變量命名規(guī)則_第1頁
C語言變量命名規(guī)則_第2頁
C語言變量命名規(guī)則_第3頁
C語言變量命名規(guī)則_第4頁
C語言變量命名規(guī)則_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、1、嚴(yán)格采用階梯層次組織程序代碼:各層次縮進(jìn)的分格采用VC的缺省風(fēng)格,即每層次縮進(jìn)為4格,括號(hào)位于下一行。要求相匹配的大括號(hào)在同一列,對(duì)繼行則要求再縮進(jìn)4格。例如:2、提示信息字符串的位置在程序中需要給出的提示字符串,為了支持多種語言的開發(fā),除了一些給調(diào)試用的臨時(shí)信息外,其他所有的提示信息必須定義在資源中。3、對(duì)變量的定義,盡量位于函數(shù)的開始位置。二、命名規(guī)則:1、變量名的命名規(guī)則、變量的命名規(guī)則要求用匈牙利法則”。即開頭字母用變量的類型,其余部分用變量的英文意思或其英文意思的縮寫,盡量避免用中文的拼音,要求單詞的第一個(gè)字母應(yīng)大寫。即:變量名=變量類型+變量的英文意思(或縮寫)對(duì)非通用的變量,

2、在定義時(shí)加入注釋說明,變量定義盡量可能放在函數(shù)的開始處。見下表:bool(BOOL)用b開頭bisParentbyte(BYTE)用by開頭byFlagshort(int)用n開頭nStepCountlong(LONG)用l開頭ISumchar(CHAR)用c開頭cCountfloat(FLOAT)用f開頭fAvgdouble(DOUBLE)用d開頭dDetavoid(VOID)用v開頭vVariantunsignedint(WORD)用w開頭wCountunsignedlong(DWORD)用dw開頭dwBroadHANDLE(HINSTANCE)用h開頭hHandleDWORD用dw開頭d

3、wWordLPCSTR(LPCTSTR)用str開頭strString用0結(jié)尾的字符串用sz開頭szFileName對(duì)未給出的變量類型要求提出并給出命名建議給技術(shù)委員會(huì)。、指針變量命名的基本原則為:對(duì)一重指針變量的基本原則為:“p”變量類型前綴+命名如一個(gè)float*型應(yīng)該表示為pfStat對(duì)多重指針變量的基本規(guī)則為:二重指針:“pp”變量類型前綴+命名三重指針:“ppp”變量類型前綴+命名、全局變量用g_開頭,如一個(gè)全局的長型變量定義為g_lFailCount,即:變量名=g_+變量類型+變量的英文意思(或縮寫)、靜態(tài)變量用s_開頭,如一個(gè)靜態(tài)的指針變量定義為s_plPerv_Inst,即:

4、變量名=s_+變量類型+變量的英文意思(或縮寫)、成員變量用m_開頭,如一個(gè)長型成員變量定義為m_lCount;即:變量名=m_+變量類型+變量的英文意思(或縮寫)、對(duì)枚舉類型(enum)中的變量,要求用枚舉變量或其縮寫做前綴。并且要求用大寫。如:enumcmEMDAYSEMDAYSMONDAY;EMDAYS_TUESDAY;;、對(duì)struct、union、class變量的命名要求定義的類型用大寫。并要加上前綴,其內(nèi)部變量的命名規(guī)則與變量命名規(guī)則一致。結(jié)構(gòu)一般用S開頭如:structScmNPointintnX;點(diǎn)的X位置intnY;點(diǎn)的Y位置I_;聯(lián)合體一般用U開頭如:unionUcmLPo

5、intlonglX;longlY;類一般用C開頭如:classCcmFPointpublic:floatfPoint;對(duì)一般的結(jié)構(gòu)應(yīng)該定義為類模板,為以后的擴(kuò)展性考慮如:templateclassCcmTVector3dpublic:TYPEx,y,z;;、對(duì)常量(包括錯(cuò)誤的編碼)命名,要求常量名用大寫,常量名用英文表達(dá)其意思。如:#defineCM_FILE_NOT_FOUNDCMMAKEHR(0X20B)其中CM表示類別。、對(duì)const的變量要求在變量的命名規(guī)則前加入c,即:c+變量命名規(guī)則;例如:constchar*cszFileName;2、函數(shù)的命名規(guī)范:函數(shù)的命名應(yīng)該盡量用英文表達(dá)

6、出函數(shù)完成的功能。遵循動(dòng)賓結(jié)構(gòu)的命名法則,函數(shù)名中動(dòng)詞在前,并在命名前加入函數(shù)的前綴,函數(shù)名的長度不得少于8個(gè)字母。例如:longcmGetDeviceCount();3、函數(shù)參數(shù)規(guī)范:、參數(shù)名稱的命名參照變量命名規(guī)范。、為了提高程序的運(yùn)行效率,減少參數(shù)占用的堆棧,傳遞大結(jié)構(gòu)的參數(shù),一律采用指針或引用方式傳遞。、為了便于其他程序員識(shí)別某個(gè)指針參數(shù)是入口參數(shù)還是出口參數(shù),同時(shí)便于編譯器檢查錯(cuò)誤,應(yīng)該在入口參數(shù)前加入const標(biāo)志。如:cmCopyString(constchar*c_szSource,char*szDest)4、引出函數(shù)規(guī)范:對(duì)于從動(dòng)態(tài)庫引出作為二次開發(fā)函數(shù)公開的函數(shù),為了能與其

7、他函數(shù)以及Windows的函數(shù)區(qū)分,采用類別前綴+基本命名規(guī)則的方法命名。例如:在對(duì)動(dòng)態(tài)庫中引出的一個(gè)圖象編輯的函數(shù)定義為imgFunctionname(其中img為image縮寫)?,F(xiàn)給出三種庫的命名前綴:、對(duì)通用函數(shù)庫,采用cm為前綴。、對(duì)三維函數(shù)庫,采用vr為前綴。、對(duì)圖象函數(shù)庫,采用img為前綴。對(duì)宏定義,結(jié)果代碼用同樣的前綴。5、文件名(包括動(dòng)態(tài)庫、組件、控件、工程文件等)的命名規(guī)范:文件名的命名要求表達(dá)出文件的內(nèi)容,要求文件名的長度不得少于5個(gè)字母,嚴(yán)禁使用象file1,myfile之類的文件名。三、注釋規(guī)范:1、函數(shù)頭的注釋對(duì)于函數(shù),應(yīng)該從功能“,參數(shù)”,返回值”、主要思路”、調(diào)

8、用方法"、自期”六個(gè)方面用如下格式注釋:程序說明開始=/功能:從一個(gè)String中刪除另一個(gè)String。/參數(shù):strByDelete,strToDelete/(入口)strByDelete:被刪除的字符串(原來的字符串)/(出口)strToDelete:要從上個(gè)字符串中刪除的字符串。/返回:找到并刪除返回1,否則返回0。(對(duì)返回值有錯(cuò)誤編碼的要求列出錯(cuò)誤編碼)。/主要思路:本算法主要采用循環(huán)比較的方法來從strByDelete中找到/與strToDelete相匹配的字符串,對(duì)多匹配strByDelete/中有多個(gè)strToDelete子串)的情況沒有處理。請(qǐng)參閱:/書名./調(diào)用方

9、法:./日期:起始日期,如:2000/8/21.9:40-2000/8/23.21:45=函數(shù)名()程序說明結(jié)束、對(duì)于某些函數(shù),其部分參數(shù)為傳入值,而部分參數(shù)為傳出值,所以對(duì)參數(shù)要詳細(xì)說明該參數(shù)是入口參數(shù),還是出口參數(shù),對(duì)于某些意義不明確的參數(shù)還要做詳細(xì)說明(例如:以角度作為參數(shù)時(shí),要說明該角度參數(shù)是以弧度(PI),還是以度為單位),對(duì)既是入口又是出口的變量應(yīng)該在入口和出口處同時(shí)標(biāo)明。等等。、函數(shù)的注釋應(yīng)該放置在函數(shù)的頭文件中,在實(shí)現(xiàn)文件中的該函數(shù)的實(shí)現(xiàn)部分應(yīng)該同時(shí)放置該注釋。、在注釋中應(yīng)該詳細(xì)說明函數(shù)的主要實(shí)現(xiàn)思路、特別要注明自己的一些想法,如果有必要?jiǎng)t應(yīng)該寫明對(duì)想法產(chǎn)生的來由。對(duì)一些模仿的

10、函數(shù)應(yīng)該注釋上函數(shù)的出處。、在注釋中詳細(xì)注明函數(shù)的適當(dāng)調(diào)用方法,對(duì)于返回值的處理方法等。在注釋中要強(qiáng)調(diào)調(diào)用時(shí)的危險(xiǎn)方面,可能出錯(cuò)的地方。、對(duì)日期的注釋要求記錄從開始寫函數(shù)到結(jié)束函數(shù)的測試之間的日期。、對(duì)函數(shù)注釋開始到函數(shù)命名之間應(yīng)該有一組用來標(biāo)識(shí)的特殊字符串。如果算法比較復(fù)雜,或算法中的變量定義與位置有關(guān),則要求對(duì)變量的定義進(jìn)行圖解。對(duì)難以理解的算法能圖解盡量圖解。2、變量的注釋:對(duì)于變量的注釋緊跟在變量的后面說明變量的作用。原則上對(duì)于每個(gè)變量應(yīng)該注釋,但對(duì)于意義非常明顯的變量,如:i,j等循環(huán)變量可以不注釋。例如:10nglLineCount/線的根數(shù)。3、文件的注釋:文件應(yīng)該在文件開頭加入

11、以下注釋:/工程:文件所在的項(xiàng)目名。/作者:*,修改者:*/描述:說明文件的功能。/主要函數(shù):/版本:說明文件的版本,完成日期。/修改:說明對(duì)文件的修改內(nèi)容、修改原因以及修改日期。/參考文獻(xiàn):/為了頭文件被重復(fù)包含要求對(duì)頭文件進(jìn)行定義如下:#ifndef_FILENAME_H_#define_FILENAME_H_其中FILENAME為頭文件的名字。4、其他注釋:在函數(shù)內(nèi)我們不需要注釋每一行語句。但必須在各功能模塊的每一主要部分之前添加塊注釋,注釋每一組語句,在循環(huán)、流程的各分支等,盡可能多加以注釋。其中的循環(huán)、條件、選擇等位置必須注釋。對(duì)于前后順序不能顛倒的情況,建議在注釋中增加序號(hào)。例如:

12、在其他順序執(zhí)行的程序中,每隔35行語句,必須加一個(gè)注釋,注明這一段語句所組成的小模塊的作用。對(duì)于自己的一些比較獨(dú)特的思想要求在注釋中標(biāo)明。四、程序健壯性:1、函數(shù)的返回值規(guī)范:對(duì)于函數(shù)的返回位置,盡量保持單一性,即一個(gè)函數(shù)盡量做到只有一個(gè)返回位置。(單入口單出口)。要求大家統(tǒng)一函數(shù)的返回值,所有的函數(shù)的返回值都將以編碼的方式返回。例如編碼定義如下:#defineCMPOINTISNULLCMMAKEHR(0X200)建議函數(shù)實(shí)現(xiàn)如下:long函數(shù)名(參數(shù),)longlResult;保持錯(cuò)誤號(hào)lResult=CMOK;如果參數(shù)有錯(cuò)誤則返回錯(cuò)誤號(hào)if(參數(shù)=NULL)lResult=CM_POINT_IS_NULL;gotoEND;END:returnIResult;2、關(guān)于goto的應(yīng)用:對(duì)goto語句的應(yīng)用,我們要求盡量少用goto語句。對(duì)一定要用的地方要求只能向后轉(zhuǎn)移。3、資源變量的處理(資源變量是指消耗系統(tǒng)資源的變量):對(duì)資源變量一定賦初值。分配的資源在用完后必須馬上釋放,并重新賦值。4、對(duì)復(fù)雜的條件判斷,為了程序的可讀性,應(yīng)該盡量

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論