




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全面掌握2025年Msoffice的試題及答案
- 如何在Photoshop中創(chuàng)建創(chuàng)意文本效果試題及答案
- 網(wǎng)絡管理員考試價值制定試題及答案
- 影像與敘事的關系試題及答案
- Msoffice操作的常見問題解答試題及答案
- 解析多元的2025年文學概論試題及答案
- 現(xiàn)代漢語學習方法分享試題及答案
- 深入了解2025年稅法考試試題及答案
- 網(wǎng)絡攻擊防護措施試題及答案
- 實戰(zhàn)備考2025年計算機一級Msoffice試題及答案
- 《駱駝祥子》中“虎妞”形象分析6200字(論文)
- 《質量管理體系國家注冊審核員預備知識培訓教程》
- 2024年5月26日河南省事業(yè)單位聯(lián)考《公共基礎知識》試題
- 兒歌大全100首歌詞
- 糧油食材配送投標方案(大米食用油食材配送服務投標方案)(技術方案)
- 2024年江西省高考物理+化學+生物試卷(真題+答案)
- 個人獨資企業(yè)(合伙企業(yè))轉型有限責任公司登記申請書
- 2023年湖南省普通高等學校對口招生考試機電類專業(yè)綜合知識試題附答題卡
- 醫(yī)院用工合同醫(yī)院用工合同書(2024版)
- 車輛頂賬協(xié)議書范文
- 口腔正畸學之矯治器及其制作技術常用器械課件
評論
0/150
提交評論