




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、匈牙利命名法是微軟推廣的一種關(guān)于變量、函數(shù)、對(duì)象、前綴、宏定義等各種類型的符號(hào)的命名規(guī)范。匈牙利命名法的主要思想是:在變量和函數(shù)名中加入前綴以增進(jìn)人們對(duì)程序的理解。它是由微軟內(nèi)部的一個(gè)匈牙利人發(fā)起使用的,結(jié)果它在微軟內(nèi)部逐漸流行起來(lái),并且推廣給了全世界的Windows開發(fā)人員。下面將介紹匈牙利命名法,后面的例子里也會(huì)盡量遵守它和上面的代碼風(fēng)格。 a Array
2、0; 數(shù)組 b BOOL (int)
3、 布爾(整數(shù)) by Unsigned Char (Byte) 無(wú)符號(hào)字符(字節(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) 雙字(無(wú)符號(hào)長(zhǎng)整數(shù)) f
7、 Flags (usually multiple bit values) 標(biāo)志(一般是有多位的數(shù)值) fn Function
8、0; 函數(shù) g_ global 全局的 h
9、60; Handle 句柄 i Integer &
10、#160; 整數(shù) l Long
11、60; 長(zhǎng)整數(shù) lp Long pointer
12、長(zhǎng)指針 m_ Data member of a class 一個(gè)類的數(shù)據(jù)成員 n Short int
13、0; 短整數(shù) p Pointer
14、160; 指針 s String 字符串 sz &
15、#160; Zero terminated String 以0結(jié)尾的字符串 tm Text metric
16、160; 文本規(guī)則 u Unsigned int 無(wú)符號(hào)整數(shù) ul Unsigned
17、 long (ULONG) 無(wú)符號(hào)長(zhǎng)整數(shù) w WORD (unsigned short) 無(wú)符號(hào)短整數(shù) x,y
18、; x, y coordinates (short) 坐標(biāo)值/短整數(shù) v void &
19、#160; 空 有關(guān)項(xiàng)目的全局變量用g_開始,類成員變量用m_,局部變量若函數(shù)較大則可考慮用l_用以顯示說(shuō)明其是局部變量。前綴 類型 例子g_ 全局變量 g_ServersC
20、0; 類或者結(jié)構(gòu)體 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 無(wú)符號(hào)整型(其大小由操作系統(tǒng)決定) nLengthw WORD 16位無(wú)符號(hào)整型
23、 wPosl LONG 32位有符號(hào)整型 lOffsetdw DWORD 32位無(wú)符號(hào)整型 dwRangep * Ambient memory
24、model pointer 內(nèi)存模塊指針,指針變量 pDoclp FAR* 長(zhǎng)指針 lpDoclpsz LPSTR 32位字符串指針 lpszNamelpsz LPCSTR
25、0; 32位常量字符串指針 lpszNamelpsz LPCTSTR 32位UNICODE類型常量指針 lpszNameh handle Windows對(duì)象句柄
26、0; hWndlpfn (*fn)() 回調(diào)函數(shù)指針 Callback Far pointer to CALLBACK function lpfnAbort Windows對(duì)象名稱縮寫:Windows對(duì)象 例子變量 MFC類 例子對(duì)象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常用宏定義命名列表:前綴 符號(hào)類型 符號(hào)例子 范圍IDR_ 標(biāo)識(shí)多個(gè)資源共享的類型 IDR_MAINFRAME
34、 10x6FFFIDD_ 對(duì)話框資源(Dialog) IDD_SPELL_CHECK 1 0x6FFFHIDD_ 基于對(duì)話框的上下文幫助 HIDD_SPELL_CHECK
35、; 0x200010x26FFIDB_ 位圖資源(Bitmap) IDB_COMPANY_LOGO 10x6FFFIDC_ 光標(biāo)資源(Cursor) IDC_PENCIL 10x6FFFIDI
36、_ 圖標(biāo)資源(Icon) IDI_NOTEPAD 10x6FFFID_、IDM_ 工具欄或菜單欄的命令項(xiàng) ID_TOOLS_SPELLING 0x80000xDFFFHID_ 命令上下文幫助 &
37、#160; HID_TOOLS_SPELLING 0x180000x1DFFFIDP_ 消息框提示文字資源 IDP_INVALID_PARTNO 80xDFFFHIDP_ 消息框上下文幫助 HIDP_IN
38、VALID_PARTNO 0x300080x3DFFFIDS_ 字符串資源(String) IDS_COPYRIGHT 10x7FFFIDC_ 對(duì)話框內(nèi)的控制資源 IDC_RECA
39、LC 80xDFFF Microsoft MFC宏命名規(guī)范名稱 類型_AFXDLL 唯一的動(dòng)態(tài)連接庫(kù)(Dynamic Link Library,DLL)版本_ALPHA 僅編譯DEC Alpha處理器_DEBUG 包括診斷的調(diào)試版本_MBCS 編譯多字節(jié)字符集_UNICODE 在一個(gè)應(yīng)用程序中打開UnicodeA
40、FXAPI MFC提供的函數(shù)CALLBACK 通過(guò)指針回調(diào)的函數(shù) 庫(kù)標(biāo)識(shí)符命名法標(biāo)識(shí)符 值和含義u ANSI(N)或Unicode(U)d 調(diào)試或發(fā)行:D = 調(diào)試;忽略標(biāo)識(shí)符為發(fā)行 靜態(tài)庫(kù)版本命名規(guī)范庫(kù) 描述NAFXCWD.LIB 調(diào)試版本:MFC靜態(tài)連
41、接庫(kù)NAFXCW.LIB 發(fā)行版本:MFC靜態(tài)連接庫(kù)UAFXCWD.LIB 調(diào)試版本:具有Unicode支持的MFC靜態(tài)連接庫(kù)UAFXCW.LIB 發(fā)行版本:具有Unicode支持的MFC靜態(tài)連接庫(kù) 動(dòng)態(tài)連接庫(kù)命名規(guī)范名稱 類型_AFXDLL
42、 唯一的動(dòng)態(tài)連接庫(kù)(DLL)版本W(wǎng)INAPI Windows所提供的函數(shù) Windows.h中新的命名規(guī)范類型 定義描述WINAPI 使用在API聲明中的FAR PASCAL位置,如果正在編寫一個(gè)具有導(dǎo)出API人口點(diǎn)的DLL,則可以在自己的API中使用該類型CALLBACK 使用在應(yīng)用程序回調(diào)程序,如窗口和對(duì)話框過(guò)程中的FAR PASCAL的位置L
43、PCSTR 與LPSTR相同,只是LPCSTR用于只讀串指針,其定義類似(const char FAR*)UINT 可移植的無(wú)符號(hào)整型類型,其大小由主機(jī)環(huán)境決定(對(duì)于Windows NT和Windows &
44、#160; 9x為32位);它是unsigned int的同義詞LRESULT 窗口程序返回值的類型LPARAM 聲明lParam所使用的類型,lParam是窗口程序的第四個(gè)參數(shù)WPARAM 聲明wParam所使用的類型,wParam是窗口程序的第三個(gè)參數(shù)LPVOID 一般指
45、針類型,與(void *)相同,可以用來(lái)代替LPSTR MSDN中給出了一段遵守代碼風(fēng)格和匈牙利命名法的代碼參考如下: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方式編程:匈牙利符號(hào)表示法 匈牙利符號(hào)表示法包括許多與下列命名有關(guān)的約定: (1)變量 (2)函數(shù) (3)類型和常量 (4)類 (5)參數(shù) 匈牙利符號(hào)表示法的前綴代碼指導(dǎo)說(shuō)明書: *
52、前綴 數(shù)據(jù)類型(基本類型) C 字符 BY 字節(jié) N 短整數(shù)和整數(shù)(表示一個(gè)數(shù)) I 整數(shù) X,Y 短整數(shù)(通常用于X坐標(biāo)和Y坐標(biāo)) CX,CY 短整數(shù)(通常用于表示X和Y的長(zhǎng)度,C表示計(jì)數(shù)) B 布爾型 W UINT(無(wú)符號(hào)數(shù))和WORD(無(wú)符號(hào)字) L LONG(長(zhǎng)整數(shù)) DW DWORD(無(wú)符號(hào)長(zhǎng)整數(shù)) FN 函數(shù)指針 S 串 SZ,STR 以0字節(jié)終止的字符串 LP 32位長(zhǎng)整數(shù)指針 H 編號(hào)(常用于表示W(wǎng)indows對(duì)象) MSG 消息 * 變量的命名: 應(yīng)用匈牙利表示法,變量可用上表中的前綴代碼來(lái)表示。另外,當(dāng)一個(gè)變量是由一個(gè)或幾個(gè)子名構(gòu)成時(shí),每一個(gè)子名都要以大寫字母開頭。下 面是
53、幾個(gè)例子: char *szfileName; / a nulla terminated string:以0終止的字符串 int *lpidate; / a 32-bit pointer to an int:指向一個(gè)整型變量的32位的長(zhǎng)指針 Bool,bSemaphore; /a boolean value WORD dwMaxCount / a 32-bit unsigned WORD 盡管我們了解一個(gè)函數(shù)的局部變量沒(méi)有說(shuō)明,但是也有個(gè)別表示全局變量必須要以 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ù)和變量的命名方式相同,但是沒(méi)有前綴,換句話說(shuō),子名的第一個(gè)字母要大寫。下面是幾個(gè)例子: int PlotPixel(int ix,int iy,int ic); void *MemScan(char *szString); 而且,下劃線是非法的。例如,下面的函數(shù)名表示是無(wú)效的匈牙利表示法: 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 類的命名 類命名的約定可能要麻煩一點(diǎn)。但我也看到有很多人在使用這個(gè)約定,并獨(dú)立地進(jìn)行補(bǔ)充。不管怎么說(shuō),所有C+的類必須以大寫C為前綴,類 名字的每一個(gè)子名的第一個(gè)字母都必須大寫: class CVector / the chinese mean of vector is 矢量 public CVector(); ix=iy=iz=imagnitude=0; /the chinese mean of magnitude is 大小
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健健康康過(guò)春節(jié)活動(dòng)方案
- 健康公司游戲活動(dòng)方案
- 健康安全宣傳日活動(dòng)方案
- 健康抽獎(jiǎng)活動(dòng)方案
- 健康活動(dòng)宣傳活動(dòng)方案
- 健康科技進(jìn)校園活動(dòng)方案
- 健康行走活動(dòng)方案
- 健康食譜活動(dòng)方案
- 健身會(huì)員相關(guān)活動(dòng)方案
- 健身寒假活動(dòng)方案
- 營(yíng)維一體化SOP手冊(cè)(裝維、銷售、維系)
- FZ/T 93056-1999變形絲用筒管技術(shù)條件
- 第六章神經(jīng)系統(tǒng)
- 醫(yī)療不良事件報(bào)告表
- SA8000-2014社會(huì)責(zé)任績(jī)效委員會(huì)SPT組織架構(gòu)、職責(zé)和定期檢討及評(píng)審會(huì)議記錄
- 材料加工新技術(shù)與新工藝112課件
- 國(guó)開作業(yè)科研人員TRIZ技術(shù)創(chuàng)新方法應(yīng)用培訓(xùn)-單元測(cè)驗(yàn)1(確定項(xiàng)目+描述項(xiàng)目)76參考(含答案)
- 企業(yè)安全生產(chǎn)網(wǎng)格化管理體系圖空白
- 焊接熱處理工藝卡
- 百日咳臨床研究進(jìn)展PPT醫(yī)學(xué)課件
- 大型鋼網(wǎng)架整體提升施工工法
評(píng)論
0/150
提交評(píng)論