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

下載本文檔

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

文檔簡介

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

2、類型 +變量的英文意思(或縮寫對非通用的變量,在定義時加入注釋說明,變量定義盡量可能放在函數的開始處。 見下表:bool(BOOL 用 b 開頭 bIsParentbyte(BYTE 用 by 開頭 byFlagshort(int 用 n 開頭 nStepCountlong(LONG 用 l 開頭 lSumchar(CHAR 用 c 開頭 cCountfloat(FLOAT 用 f 開頭 fAvgdouble(DOUBLE 用 d 開頭 dDetavoid(VOID 用 v 開頭 vVariantunsigned int (WORD 用 w 開頭 wCountunsigned long(DWO

3、RD 用 dw 開頭 dwBroadHANDLE (HINSTANCE 用 h 開頭 hHandleDWORD 用 dw 開頭 dwWordLPCSTR(LPCTSTR 用 str 開頭 strString用 0結尾的字符串 用 sz 開頭 szFileName對未給出的變量類型要求提出并給出命名建議給技術委員會。、指針變量命名的基本原則為:對一重指針變量的基本原則為:“p”+變量類型前綴 +命名如一個 float*型應該表示為 pfStat對多重指針變量的基本規則為:二重指針:“pp”+變量類型前綴 +命名三重指針:“ppp”+變量類型前綴 +命名.、全局變量用 g_開頭 , 如一個全局的長

4、型變量定義為 g_lFailCount,即:變量名 =g_+變量類型 +變量的英文意思(或縮寫、靜態變量用 s_開頭 , 如一個靜態的指針變量定義為 s_plPerv_Inst,即:變量名 =s_+變量類型 +變量的英文意思(或縮寫、成員變量用 m_開頭 , 如一個長型成員變量定義為 m_lCount;即:變量名 =m_+變量 類型 +變量的英文意思(或縮寫、對枚舉類型(enum 中的變量,要求用枚舉變量或其縮寫做前綴。并且要求用大 寫。如:enum cmEMDAYSEMDAYS_MONDAY;EMDAYS_TUESDAY;、對 struct 、 union 、 class 變量的命名要求定義

5、的類型用大寫。并要加上前綴,其內 部變量的命名規則與變量命名規則一致。結構一般用 S 開頭如:struct ScmNPointint nX;/點的 X 位置int nY; /點的 Y 位置;聯合體一般用 U 開頭如 : union UcmLPointlong lX;long lY;類一般用 C 開頭如:class CcmFPointpublic:float fPoint;對一般的結構應該定義為類模板,為以后的擴展性考慮如:templateclass CcmTVector3dpublic:TYPE x,y,z;、對常量(包括錯誤的編碼命名,要求常量名用大寫,常量名用英文表達其意思。 如:#def

6、ine CM_FILE_NOT_FOUND CMMAKEHR(0X20B 其中 CM 表示 類別。、 對 const 的變量要求在變量的命名規則前加入 c_,即:c_+變量命名規則; 例如: const char* c_szFileName;2、 函數的命名規范:函數的命名應該盡量用英文表達出函數完成的功能。 遵循動賓結構的命名法則, 函數名 中動詞在前 , 并在命名前加入函數的前綴,函數名的長度不得少于 8個字母。例如:long cmGetDeviceCount( ;3、函數參數規范:、 參數名稱的命名參照變量命名規范。、 為了提高程序的運行效率, 減少參數占用的堆棧,傳遞大結構的參數,一律

7、采 用指針或引用方式傳遞。、 為了便于其他程序員識別某個指針參數是入口參數還是出口參數, 同時便于編 譯器檢查錯誤,應該在入口參數前加入 const 標志。如:cmCopyString(const char * c_szSource, char * szDest 4、引出函數規范:對于從動態庫引出作為二次開發函數公開的函數,為了能與其他函數以及 Windows 的 函數區分,采用類別前綴 +基本命名規則的方法命名。例如:在對動態庫中引出的一個圖象 編輯的函數定義為 imgFunctionname(其中 img 為 image 縮寫 。現給出三種庫的命名前綴:、 對通用函數庫,采用 cm 為前綴

8、。、 對三維函數庫,采用 vr 為前綴。、 對圖象函數庫,采用 img 為前綴。對宏定義,結果代碼用同樣的前綴。5、文件名 (包括動態庫、組件、控件、工程文件等 的命名規范:文件名的命名要求表達出文件的內容,要求文件名的長度不得少于 5個字母,嚴禁使 用象 file1,myfile 之類的文件名。三、注釋規范:1、函數頭的注釋對于函數,應該從 “ 功能 ” , “ 參數 ” , “ 返回值 ” 、 “ 主要思路 ” 、 “ 調用方法 ” 、 “ 日期 ” 六個方面用如下格式注釋:/程序說明開始/=/ / 功能:從一個 String 中刪除另一個 String 。/ 參數:strByDelete

9、,strToDelete/ (入口 strByDelete: 被刪除的字符串(原來的字符串/ (出口 strToDelete: 要從上個字符串中刪除的字符串。/ 返回:找到并刪除返回 1,否則返回 0。(對返回值有錯誤編碼的要 / 求 列出錯誤編碼。/ 主要思路:本算法主要采用循環比較的方法來從 strByDelete 中找到/ 與 strToDelete 相匹配的字符串,對多匹配 strByDelete/ 中有多個 strToDelete 子串的情況沒有處理。請參閱:/ 書名 ./ 調用方法:./ 日期:起始日期,如:2000/8/21.9:40-2000/8/23.21:45/=/ 函數名

10、 (/程序說明結束、 對于某些函數,其部分參數為傳入值,而部分參數為傳出值, 所以對參數要詳 細說明該參數是入口參數, 還是出口參數, 對于某些意義不明確的參數還要做詳細說明 (例 如:以角度作為參數時,要說明該角度參數是以弧度(PI , 還是以度為單位 , 對既是入口 又是出口的變量應該在入口和出口處同時標明。等等。、 函數的注釋應該放置在函數的頭文件中, 在實現文件中的該函數的實現部分應 該同時放置該注釋。、 在注釋中應該詳細說明函數的主要實現思路、 特別要注明自己的一些想法, 如 果有必要則應該寫明對想法產生的來由。對一些模仿的函數應該注釋上函數的出處。 、 在注釋中詳細注明函數的適當調

11、用方法, 對于返回值的處理方法等。 在注釋中 要強調調用時的危險方面,可能出錯的地方。、 對日期的注釋要求記錄從開始寫函數到結束函數的測試之間的日期。、 對函數注釋開始到函數命名之間應該有一組用來標識的特殊字符串。如果算法比較復雜,或算法中的變量定義與位置有關,則要求對變量的定義進行圖解。 對難以理解的算法能圖解盡量圖解。2、變量的注釋:對于變量的注釋緊跟在變量的后面說明變量的作用。 原則上對于每個變量應該注釋, 但 對于意義非常明顯的變量,如:i,j 等循環變量可以不注釋。例如:long lLineCount /線的根數。3、文件的注釋:文件應該在文件開頭加入以下注釋:/ 工程 : 文件所在

12、的項目名。/ 作者:*,修改者:*/ 描述 :說明文件的功能。/ 主要函數:/ 版本 : 說明文件的版本,完成日期。/ 修改 : 說明對文件的修改內容、修改原因以及修改日期。/ 參考文獻: ./為了頭文件被重復包含要求對頭文件進行定義如下 :#ifndef _FILENAME_H_#define _FILENAME_H_其中 FILENAME 為頭文件的名字。4、其他注釋:在函數內我們不需要注釋每一行語句。 但必須在各功能模塊的每一主要部分之前添加塊 注釋,注釋每一組語句,在循環、流程的各分支等,盡可能多加以注釋。其中的循環、條件、選擇等位置必須注釋。對于前后順序不能顛倒的情況,建議在注釋中增

13、加序號。例如:在其他順序執行的程序中,每隔 3 5行語句,必須加一個注釋,注明這一段語句所組 成的小模塊的作用。對于自己的一些比較獨特的思想要求在注釋中標明。四、程序健壯性:1、函數的返回值規范:對于函數的返回位置,盡量保持單一性,即一個函數盡量做到只有一個返回位置。 (單 入口單出口 。要求大家統一函數的返回值,所有的函數的返回值都將以編碼的方式返回。例如編碼定義如下:#define CM_POINT_IS_NULL CMMAKEHR(0X200:建議函數實現如下:long 函數名 (參數 ,long lResult; /保持錯誤號lResult=CM_OK;/如果參數有錯誤則返回錯誤號if(參數=NULL lResult=CM_POINT_IS_NULL; goto END: return 2、關于 goto 的應用: 對 goto 語句的應用,我們要求盡量少用 goto 語句。對一定要用的地方要求只能向后轉 移。 3、資源變量的處理(資源變量是指消耗系統資源的變量): 對資源變量一定賦初值。分配的資源在用完后必須馬上釋放,并重新賦值。 4、對復雜的條件判斷,為了程序的可讀性,應該盡量使用括號。 例:

溫馨提示

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

評論

0/150

提交評論