C語言變量命名規則_第1頁
C語言變量命名規則_第2頁
C語言變量命名規則_第3頁
C語言變量命名規則_第4頁
C語言變量命名規則_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、嚴格采取階梯層次組織程序代碼:

各層次縮進分格采取VC缺省風格,即每層次縮進為4格,括號位于下一行。要求相匹配大括號在同一列,對繼行則要求再縮進4格。比如:

2、提醒信息字符串位置

在程序中需要給出提醒字符串,為了支持多個語言開發,除了部分給調試用臨時信息外,其她全部提醒信息必需定義在資源中。

3、對變量定義,盡可能位于函數開始位置。

二、命名規則:

1、變量名命名規則

①、變量命名規則要求用“匈牙利法則”。即開頭字母用變量類型,其它部分用變量英文意思或其英文意思縮寫,盡可能避免用漢字拼音,要求單詞第一個字母應大寫。

即:變量名=變量類型+變量英文意思(或縮寫)

對非通用變量,在定義時加入注釋說明,變量定義盡可能可能放在函數開始處。

見下表:

bool(BOOL)用b開頭bIsParent

byte(BYTE)用by開頭byFlag

short(int)用n開頭nStepCount

long(LONG)用l開頭lSum

char(CHAR)用c開頭cCount

float(FLOAT)用f開頭fAvg

double(DOUBLE)用d開頭dDeta

void(VOID)用v開頭vVariant

unsignedint(WORD)用w開頭wCount

unsignedlong(DWORD)用dw開頭dwBroad

HANDLE(HINSTANCE)用h開頭hHandle

DWORD用dw開頭dwWord

LPCSTR(LPCTSTR)用str開頭strString

用0結尾字符串用sz開頭szFileName

對未給出變量類型要求提出并給出命名提議給技術委員會。

②、指針變量命名基礎標準為:

對一重指針變量基礎標準為:

“p”+變量類型前綴+命名

如一個float*型應該表示為pfStat

對多重指針變量基礎規則為:

二重指針:“pp”+變量類型前綴+命名

三重指針:“ppp”+變量類型前綴+命名

......

③、全局變量用g_開頭,如一個全局長型變量定義為g_lFailCount,即:變量名=g_+變量類型+變量英文意思(或縮寫)

④、靜態變量用s_開頭,如一個靜態指針變量定義為s_plPerv_Inst,即:變量名=s_+變量類型+變量英文意思(或縮寫)

⑤、組員變量用m_開頭,如一個長型組員變量定義為m_lCount;即:變量名=m_+變量類型+變量英文意思(或縮寫)

⑥、對枚舉類型(enum)中變量,要求用枚舉變量或其縮寫做前綴。而且要求用大寫。

如:enumcmEMDAYS

{

EMDAYS_MONDAY;

EMDAYS_TUESDAY;

……

};

⑦、對struct、union、class變量命名要求定義類型用大寫。并要加上前綴,其內部變量命名規則與變量命名規則一致。

結構通常見S開頭

如:structScmNPoint

{

intnX;//點X位置

intnY;//點Y位置

};

聯合體通常見U開頭

如:unionUcmLPoint

{

longlX;

longlY;

}

類通常見C開頭

如:

classCcmFPoint

{

public:

floatfPoint;

};

對通常結構應該定義為類模板,為以后擴展性考慮

如:

template

classCcmTVector3d

{

public:

TYPEx,y,z;

};

⑧、對常量(包含錯誤編碼)命名,要求常量名用大寫,常量名用英文表示其意思。

如:#defineCM_FILE_NOT_FOUNDCMMAKEHR(0X20B)其中CM表示類別。

⑨、對const變量要求在變量命名規則前加入c_,即:c_+變量命名規則;比如:

constchar*c_szFileName;

2、函數命名規范:

函數命名應該盡可能用英文表示出函數完成功效。遵照動賓結構命名法則,函數名中動詞在前,并在命名前加入函數前綴,函數名長度不得少于8個字母。

比如:

longcmGetDeviceCount(……);

3、函數參數規范:

①、參數名稱命名參考變量命名規范。

②、為了提升程序運行效率,降低參數占用堆棧,傳輸大結構參數,一律采取指針或引用方法傳輸。

③、為了便于其她程序員識別某個指針參數是入口參數還是出口參數,同時便于編譯器檢驗錯誤,應該在入口參數前加入const標志。如:

……cmCopyString(constchar*c_szSource,char*szDest)

4、引出函數規范:

對于從動態庫引出作為二次開發函數公開函數,為了能與其她函數以及Windows函數區分,采取類別前綴+基礎命名規則方法命名。比如:在對動態庫中引出一個圖象編輯函數定義為imgFunctionname(其中img為image縮寫)。

現給出三種庫命名前綴:

①、對通用函數庫,采取cm為前綴。

②、對三維函數庫,采取vr為前綴。

③、對圖象函數庫,采取img為前綴。

對宏定義,結果代碼用一樣前綴。

5、文件名(包含動態庫、組件、控件、工程文件等)命名規范:

文件名命名要求表示出文件內容,要求文件名長度不得少于5個字母,嚴禁使用象file1,myfile之類文件名。

三、注釋規范:

1、函數頭注釋

對于函數,應該從“功效”,“參數”,“返回值”、“關鍵思緒”、“調用方法”、“日期”六個方面用以下格式注釋:

//程序說明開始

//================================================================//

//功效:從一個String中刪除另一個String。

//參數:strByDelete,strToDelete

//(入口)strByDelete:被刪除字符串(原來字符串)

//(出口)strToDelete:要從上個字符串中刪除字符串。

//返回:找到并刪除返回1,不然返回0。(對返回值有錯誤編碼要//求列犯錯誤編碼)。

//關鍵思緒:本算法關鍵采取循環比較方法來從strByDelete中找到

//與strToDelete相匹配字符串,對多匹配strByDelete

//中有多個strToDelete子串)情況沒有處理。請參閱:

//書名......

//調用方法:......

//日期:起始日期,如:/8/21.9:40--/8/23.21:45

//================================================================//

函數名(……)

//程序說明結束

①、對于一些函數,其部分參數為傳入值,而部分參數為傳出值,所以對參數要具體說明該參數是入口參數,還是出口參數,對于一些意義不明確參數還要做具體說明(比如:以角度作為參數時,要說明該角度參數是以弧度(PI),還是以度為單位),對既是入口又是出口變量應該在入口和出口處同時標明。等等。

②、函數注釋應該放置在函數頭文件中,在實現文件中該函數實現部分應該同時放置該注釋。

③、在注釋中應該具體說明函數關鍵實現思緒、尤其要注明自己部分想法,假如有必需則應該寫明對想法產生來由。對部分模仿函數應該注釋上函數出處。

④、在注釋中具體注明函數合適調用方法,對于返回值處理方法等。在注釋中要強調調用時危險方面,可能犯錯地方。

⑤、對日期注釋要求統計從開始寫函數到結束函數測試之間日期。

⑥、對函數注釋開始到函數命名之間應該有一組用來標識特殊字符串。

假如算法比較復雜,或算法中變量定義與位置相關,則要求對變量定義進行圖解。對難以了解算法能圖解盡可能圖解。

2、變量注釋:

對于變量注釋緊跟在變量后面說明變量作用。標準上對于每個變量應該注釋,但對于意義非常顯著變量,如:i,j等循環變量能夠不注釋。

比如:longlLineCount//線根數。

3、文件注釋:

文件應該在文件開頭加入以下注釋:

/////////////////////////////////////////////////////////////////////

//工程:文件所在項目名。

//作者:**,修改者:**

//描述:說明文件功效。

//關鍵函數:…………

//版本:說明文件版本,完成日期。

//修改:說明對文件修改內容、修改原因以及修改日期。

//參考文件:......

/////////////////////////////////////////////////////////////////////

為了頭文件被反復包含要求對頭文件進行定義以下:

#ifndef__FILENAME_H__

#define__FILENAME_H__

其中FILENAME為頭文件名字。

4、其她注釋:

在函數內我們不需要注釋每一行語句。但必需在各功效模塊每一關鍵部分之前添加塊注釋,注釋每一組語句,在循環、步驟各分支等,盡可能多加以注釋。

其中循環、條件、選擇等位置必需注釋。

對于前后次序不能顛倒情況,提議在注釋中增加序號。

比如:

在其她次序實施程序中,每隔3—5行語句,必需加一個注釋,注明這一段語句所組成小模塊作用。對于自己部分比較獨特思想要求在注釋中標明。

四、程序健壯性:

1、函數返回值規范:

對于函數返回位置,盡可能保持單一性,即一個函數盡可能做到只有一個返回位置。(單入口單出口)。

要求大家統一函數返回值,全部函數返回值都將以編碼方法返回。

比如編碼定義以下:

#defineCM_POINT_IS_NULLCMMAKEHR(0X200)

:

:

提議函數實現以下:

long函數名(參數,……)

{

longlResu

溫馨提示

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

評論

0/150

提交評論