




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、匈牙利命名法是微軟推廣的一種關于變量、函數、對象、前綴、宏定義等各種類型的符號的命名規范。匈牙利命名法的主要思想是:在變量和函數名中加入前綴以增進人們對程序的理解。它是由微軟內部的一個匈牙利人發起使用的,結果它在微軟內部逐漸流行起來,并且推廣給了全世界的Windows開發人員。下面將介紹匈牙利命名法,后面的例子里也會盡量遵守它和上面的代碼風格。 a Array
2、0; 數組 b BOOL (int)
3、 布爾(整數) by Unsigned Char (Byte) 無符號字符(字節) c Char
4、 字符(字節) cb Count of bytes
5、; 字節數 cr Color reference value 顏色(參考)值 cx Count of x (Short)
6、 x的集合(短整數) dw DWORD (unsigned long) 雙字(無符號長整數) f
7、 Flags (usually multiple bit values) 標志(一般是有多位的數值) fn Function
8、0; 函數 g_ global 全局的 h
9、60; Handle 句柄 i Integer &
10、#160; 整數 l Long
11、60; 長整數 lp Long pointer
12、長指針 m_ Data member of a class 一個類的數據成員 n Short int
13、0; 短整數 p Pointer
14、160; 指針 s String 字符串 sz &
15、#160; Zero terminated String 以0結尾的字符串 tm Text metric
16、160; 文本規則 u Unsigned int 無符號整數 ul Unsigned
17、 long (ULONG) 無符號長整數 w WORD (unsigned short) 無符號短整數 x,y
18、; x, y coordinates (short) 坐標值/短整數 v void &
19、#160; 空 有關項目的全局變量用g_開始,類成員變量用m_,局部變量若函數較大則可考慮用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 整型(其大小由操作系統決定) nLengthn UINT 無符號整型(其大小由操作系統決定) 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)() 回調函數指針 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宏命名規范名稱 類型_AFXDLL 唯一的動態連接庫(Dynamic Link Library,DLL)版本_ALPHA 僅編譯DEC Alpha處理器_DEBUG 包括診斷的調試版本_MBCS 編譯多字節字符集_UNICODE 在一個應用程序中打開UnicodeA
40、FXAPI MFC提供的函數CALLBACK 通過指針回調的函數 庫標識符命名法標識符 值和含義u ANSI(N)或Unicode(U)d 調試或發行:D = 調試;忽略標識符為發行 靜態庫版本命名規范庫 描述NAFXCWD.LIB 調試版本:MFC靜態連
41、接庫NAFXCW.LIB 發行版本:MFC靜態連接庫UAFXCWD.LIB 調試版本:具有Unicode支持的MFC靜態連接庫UAFXCW.LIB 發行版本:具有Unicode支持的MFC靜態連接庫 動態連接庫命名規范名稱 類型_AFXDLL
42、 唯一的動態連接庫(DLL)版本WINAPI Windows所提供的函數 Windows.h中新的命名規范類型 定義描述WINAPI 使用在API聲明中的FAR PASCAL位置,如果正在編寫一個具有導出API人口點的DLL,則可以在自己的API中使用該類型CALLBACK 使用在應用程序回調程序,如窗口和對話框過程中的FAR PASCAL的位置L
43、PCSTR 與LPSTR相同,只是LPCSTR用于只讀串指針,其定義類似(const char FAR*)UINT 可移植的無符號整型類型,其大小由主機環境決定(對于Windows NT和Windows &
44、#160; 9x為32位);它是unsigned int的同義詞LRESULT 窗口程序返回值的類型LPARAM 聲明lParam所使用的類型,lParam是窗口程序的第四個參數WPARAM 聲明wParam所使用的類型,wParam是窗口程序的第三個參數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)函數 (3)類型和常量 (4)類 (5)參數 匈牙利符號表示法的前綴代碼指導說明書: *
52、前綴 數據類型(基本類型) C 字符 BY 字節 N 短整數和整數(表示一個數) I 整數 X,Y 短整數(通常用于X坐標和Y坐標) CX,CY 短整數(通常用于表示X和Y的長度,C表示計數) B 布爾型 W UINT(無符號數)和WORD(無符號字) L LONG(長整數) DW DWORD(無符號長整數) FN 函數指針 S 串 SZ,STR 以0字節終止的字符串 LP 32位長整數指針 H 編號(常用于表示Windows對象) 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 盡管我們了解一個函數的局部變量沒有說明,但是也有個別表示全局變量必須要以 g_ 開頭: int g_iXPos; / a global x-position int g_iTimer; / a global
54、y-position char *g_szString /a global NULL terminated string 函數的命名: 函數和變量的命名方式相同,但是沒有前綴,換句話說,子名的第一個字母要大寫。下面是幾個例子: int PlotPixel(int ix,int iy,int ic); void *MemScan(char *szString); 而且,下劃線是非法的。例如,下面的函數名表示是無效的匈牙利表示法: 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主題教育活動講黨課
- 辦公場所衛生監督體系構建
- 2025襄陽職業技術學院輔導員考試試題及答案
- 2025西安科技大學輔導員考試試題及答案
- 2025遼寧警察學院輔導員考試試題及答案
- T/ZHCA 008-2019眼霜類化妝品眼刺激性試驗體外測試方法雞胚絨毛膜尿囊膜血管試驗
- 統計問卷調查設計
- 小班安全活動:老虎嘴安全教育
- T/ZBH 001-2017建筑玻璃外觀質量要求及評定
- 山西陽泉人才發展集團有限公司招聘筆試題庫2025
- 工貿企業有限空間作業場所安全管理臺賬
- 國際財務管理教學ppt課件(完整版)
- DB33∕T 715-2018 公路泡沫瀝青冷再生路面設計與施工技術規范
- 彩色簡約魚骨圖PPT圖表模板
- 光引發劑的性能與應用
- PID控制經典PPT
- 圖像處理和分析(上冊)課后習題答案(章毓晉)
- 油田注入水細菌分析方法+絕跡稀釋法
- 醫師處方權申請
- 簡易充電器課程設計
- 部編版語文三年級下冊課外閱讀
評論
0/150
提交評論