C語言命名規(guī)則_第1頁
C語言命名規(guī)則_第2頁
C語言命名規(guī)則_第3頁
C語言命名規(guī)則_第4頁
C語言命名規(guī)則_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、匈牙利命名法是微軟推廣的一種關于變量、函數(shù)、對象、前綴、宏定義等各種類型的符號的命名規(guī)范。匈牙利命名法的主要思想是:在變量和函數(shù)名中加入前綴以增進人們對程序的理解。它是由微軟內部的一個匈牙利人發(fā)起使用的,結果它在微軟內部逐漸流行起來,并且推廣給了全世界的Windows開發(fā)人員。下面將介紹匈牙利命名法,后面的例子里也會盡量遵守它和上面的代碼風格。   a       Array            

2、0;                    數(shù)組  b       BOOL (int)                     

3、       布爾(整數(shù))  by      Unsigned Char (Byte)                  無符號字符(字節(jié))  c       Char      

4、                            字符(字節(jié))  cb      Count of bytes             

5、;           字節(jié)數(shù)  cr      Color reference value                 顏色(參考)值  cx      Count of x (Short)  

6、                  x的集合(短整數(shù))  dw      DWORD   (unsigned long)                 雙字(無符號長整數(shù))  f

7、       Flags   (usually multiple bit values)   標志(一般是有多位的數(shù)值)  fn      Function                       

8、0;      函數(shù)  g_      global                                全局的  h   

9、60;   Handle                                句柄  i       Integer      &

10、#160;                        整數(shù)  l       Long                 

11、60;                長整數(shù)  lp      Long pointer                         

12、長指針  m_      Data member of a class                一個類的數(shù)據(jù)成員  n       Short int             

13、0;               短整數(shù)  p       Pointer                          &#

14、160;    指針  s       String                                字符串  sz    &

15、#160; Zero terminated String                以0結尾的字符串  tm      Text metric                    &#

16、160;      文本規(guī)則  u       Unsigned int                          無符號整數(shù)  ul      Unsigned

17、 long (ULONG)                 無符號長整數(shù)  w       WORD (unsigned short)                 無符號短整數(shù)  x,y 

18、;    x, y coordinates (short)              坐標值/短整數(shù)  v       void                    &

19、#160;             空 有關項目的全局變量用g_開始,類成員變量用m_,局部變量若函數(shù)較大則可考慮用l_用以顯示說明其是局部變量。前綴       類型       例子g_    全局變量       g_ServersC 

20、0;   類或者結構體       CDocument,CPrintInfom_   成員變量       m_pDoc,m_nCustomers VC常用前綴列表:前綴       類型       描述       例子ch  

21、;  char 8位字符    chGradech    TCHAR       16位UNICODE類型字符       chNameb     BOOL       布爾變量       bEnabledn   &#

22、160; int    整型(其大小由操作系統(tǒng)決定)       nLengthn     UINT       無符號整型(其大小由操作系統(tǒng)決定)       nLengthw    WORD       16位無符號整型   

23、 wPosl      LONG       32位有符號整型    lOffsetdw   DWORD       32位無符號整型       dwRangep     *       Ambient memory

24、model pointer 內存模塊指針,指針變量    pDoclp     FAR*       長指針       lpDoclpsz  LPSTR       32位字符串指針       lpszNamelpsz  LPCSTR  

25、0;    32位常量字符串指針       lpszNamelpsz  LPCTSTR       32位UNICODE類型常量指針       lpszNameh     handle       Windows對象句柄    

26、0;  hWndlpfn  (*fn)()  回調函數(shù)指針 Callback Far pointer to CALLBACK function lpfnAbort Windows對象名稱縮寫:Windows對象       例子變量       MFC類       例子對象HWND    hWnd;    

27、   CWnd*       pWnd;HDLG     hDlg;       CDialog*       pDlg;HDC       hDC;       CDC*     

28、0; pDC;HGDIOBJ       hGdiObj;       CGdiObject*     pGdiObj;HPEN     hPen;       CPen*       pPen;HBRUSH hBrush;    

29、0;  CBrush*       pBrush;HFONT   hFont;       CFont*       pFont;HBITMAP       hBitmap;       CBitmap*     

30、60; pBitmap;HPALETTE       hPalette;       CPalette*       pPalette;HRGN     hRgn;       CRgn*       pRgn;HMENU hMenu;  

31、     CMenu*       pMenu;HWND    hCtl;       CStatic*       pStatic;HWND    hCtl;       CButton*      

32、; pBtn;HWND    hCtl;       CEdit*       pEdit;HWND    hCtl;       CListBox*       pListBox;HWND    hCtl;     &

33、#160; CComboBox*       pComboBox; VC常用宏定義命名列表:前綴       符號類型       符號例子       范圍IDR_      標識多個資源共享的類型       IDR_MAINFRAME

34、       10x6FFFIDD_      對話框資源(Dialog)       IDD_SPELL_CHECK       1 0x6FFFHIDD_    基于對話框的上下文幫助       HIDD_SPELL_CHECK    

35、;   0x200010x26FFIDB_       位圖資源(Bitmap)       IDB_COMPANY_LOGO       10x6FFFIDC_      光標資源(Cursor)       IDC_PENCIL    10x6FFFIDI

36、_       圖標資源(Icon)       IDI_NOTEPAD 10x6FFFID_、IDM_    工具欄或菜單欄的命令項    ID_TOOLS_SPELLING       0x80000xDFFFHID_      命令上下文幫助     &

37、#160; HID_TOOLS_SPELLING       0x180000x1DFFFIDP_       消息框提示文字資源       IDP_INVALID_PARTNO       80xDFFFHIDP_    消息框上下文幫助       HIDP_IN

38、VALID_PARTNO       0x300080x3DFFFIDS_       字符串資源(String)       IDS_COPYRIGHT       10x7FFFIDC_      對話框內的控制資源       IDC_RECA

39、LC   80xDFFF Microsoft MFC宏命名規(guī)范名稱       類型_AFXDLL       唯一的動態(tài)連接庫(Dynamic Link Library,DLL)版本_ALPHA  僅編譯DEC Alpha處理器_DEBUG 包括診斷的調試版本_MBCS   編譯多字節(jié)字符集_UNICODE       在一個應用程序中打開UnicodeA

40、FXAPI  MFC提供的函數(shù)CALLBACK       通過指針回調的函數(shù) 庫標識符命名法標識符    值和含義u     ANSI(N)或Unicode(U)d     調試或發(fā)行:D = 調試;忽略標識符為發(fā)行 靜態(tài)庫版本命名規(guī)范庫    描述NAFXCWD.LIB       調試版本:MFC靜態(tài)連

41、接庫NAFXCW.LIB       發(fā)行版本:MFC靜態(tài)連接庫UAFXCWD.LIB       調試版本:具有Unicode支持的MFC靜態(tài)連接庫UAFXCW.LIB       發(fā)行版本:具有Unicode支持的MFC靜態(tài)連接庫 動態(tài)連接庫命名規(guī)范名稱       類型_AFXDLL     

42、  唯一的動態(tài)連接庫(DLL)版本W(wǎng)INAPI       Windows所提供的函數(shù) Windows.h中新的命名規(guī)范類型       定義描述WINAPI  使用在API聲明中的FAR PASCAL位置,如果正在編寫一個具有導出API人口點的DLL,則可以在自己的API中使用該類型CALLBACK       使用在應用程序回調程序,如窗口和對話框過程中的FAR PASCAL的位置L

43、PCSTR 與LPSTR相同,只是LPCSTR用于只讀串指針,其定義類似(const char FAR*)UINT      可移植的無符號整型類型,其大小由主機環(huán)境決定(對于Windows NT和Windows                            &

44、#160;               9x為32位);它是unsigned int的同義詞LRESULT       窗口程序返回值的類型LPARAM 聲明lParam所使用的類型,lParam是窗口程序的第四個參數(shù)WPARAM       聲明wParam所使用的類型,wParam是窗口程序的第三個參數(shù)LPVOID  一般指

45、針類型,與(void *)相同,可以用來代替LPSTR MSDN中給出了一段遵守代碼風格和匈牙利命名法的代碼參考如下:1   #include “sy.h”2   extern int *rgwDic;3   extern int bsyMac;4   struct SY *PsySz(char sz)6   7       char *pch;8       int

46、 cch;9       struct SY *psy, *PsyCreate();10      int *pbsy;11      int cwSz;12      unsigned wHash=0;13      pch=sz;14      while (*pch!=0)15

47、60;         wHash=wHash<>11+*pch+;16      cch=pch-sz;17      pbsy=&rgbsyHash(wHash&077777)%cwHash;18      for (; *pbsy!=0; pbsy = &psy->bsyNext)19   

48、   20          char *szSy;21          szSy= (psy=(struct SY*)&rgwDic*pbsy)->sz;22          pch=sz;23        

49、  while (*pch=*szSy+)24          25              if (*pch+=0)26                  return (psy);27

50、0;         28      29      cwSz=0;30      if (cch>=2)31          cwSz=cch-2/sizeof(int)+1;32      *pbsy=(int *)(

51、psy=PsyCreate(cwSY+cwSz)-rgwDic;33      Zero(int *)psy,cwSY);34      bltbyte(sz, psy->sz, cch+1);35      return(psy);36  按照MS方式編程:匈牙利符號表示法 匈牙利符號表示法包括許多與下列命名有關的約定: (1)變量 (2)函數(shù) (3)類型和常量 (4)類 (5)參數(shù) 匈牙利符號表示法的前綴代碼指導說明書: *

52、前綴 數(shù)據(jù)類型(基本類型) C 字符 BY 字節(jié) N 短整數(shù)和整數(shù)(表示一個數(shù)) I 整數(shù) X,Y 短整數(shù)(通常用于X坐標和Y坐標) CX,CY 短整數(shù)(通常用于表示X和Y的長度,C表示計數(shù)) B 布爾型 W UINT(無符號數(shù))和WORD(無符號字) L LONG(長整數(shù)) DW DWORD(無符號長整數(shù)) FN 函數(shù)指針 S 串 SZ,STR 以0字節(jié)終止的字符串 LP 32位長整數(shù)指針 H 編號(常用于表示W(wǎng)indows對象) MSG 消息 * 變量的命名: 應用匈牙利表示法,變量可用上表中的前綴代碼來表示。另外,當一個變量是由一個或幾個子名構成時,每一個子名都要以大寫字母開頭。下 面是

53、幾個例子: char *szfileName; / a nulla terminated string:以0終止的字符串 int *lpidate; / a 32-bit pointer to an int:指向一個整型變量的32位的長指針 Bool,bSemaphore; /a boolean value WORD dwMaxCount / a 32-bit unsigned WORD 盡管我們了解一個函數(shù)的局部變量沒有說明,但是也有個別表示全局變量必須要以 g_ 開頭: int g_iXPos; / a global x-position int g_iTimer; / a global

54、y-position char *g_szString /a global NULL terminated string 函數(shù)的命名: 函數(shù)和變量的命名方式相同,但是沒有前綴,換句話說,子名的第一個字母要大寫。下面是幾個例子: int PlotPixel(int ix,int iy,int ic); void *MemScan(char *szString); 而且,下劃線是非法的。例如,下面的函數(shù)名表示是無效的匈牙利表示法: int Get_Pixel(int ix,int iy); 類型和常量的命名: 所有的類型和常量都是大寫字母,但名字中可以允許有下劃線。如: const LONG NU

55、M_SECTORS=100; / a C+ style constant #define MAX_CELLS 64; / a C style constant #define POWERUNIT 100; / a C style constant typedef unsigned char UCHAR; / a user defined type 類的命名 類命名的約定可能要麻煩一點。但我也看到有很多人在使用這個約定,并獨立地進行補充。不管怎么說,所有C+的類必須以大寫C為前綴,類 名字的每一個子名的第一個字母都必須大寫: class CVector / the chinese mean of vector is 矢量 public CVector(); ix=iy=iz=imagnitude=0; /the chinese mean of magnitude is 大小

溫馨提示

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

評論

0/150

提交評論