VC++匈牙利命名法

    匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。下面就是HN命名法的一般规则。

1.属性部分 
全局变量g_ 
const常量 c_ 
c++类成员变量m_ 
静态变量s_ 


2.类型部分 
指针
函数fn 
无效
句柄
长整型
布尔
浮点型(有时也指文件)
双字dw 
字符串sz 
短整型
双精度浮点
计数c(通常用cnt) 
字符ch(通常用c) 
整型i(通常用n) 
字节by 

实型
无符号


2.描述部分 
最大Max 
最小Min 
初始化Init 
临时变量T(或Temp) 
源对象Src 
目的对象Dest 


这里顺便写几个例子: 
(1) hwnd : h 是类型描述,表示句柄, wnd 是变量对象描述,表示窗口,所以 hwnd 表示窗口句柄; 
(2) pfnEatApple : pfn 是类型描述,表示指向函数的指针, EatApple 是变量对象描述,所以它表示 
指向 EatApple 函数的函数指针变量。 
(3) g_cch : g_ 是属性描述,表示全局变量,c 和 ch 分别是计数类型和字符类型,一起表示变量类 
型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。 


小结:匈牙利命名法 

1.MFC、句柄、控件及结构的命名规范Windows类型 样本变量 MFC类 样本变量 
HWND hWnd;CWnd* pWnd; 
HDLG hDlg;CDialog* pDlg; 
HDC hDC;CDC* pDC; 
HGDIOBJ hGdiObj;CGdiObject* pGdiObj; 
HPEN hPen;CPen* pPen; 
HBRUSH hBrush;CBrush* pBrush; 
HFONT hFont;CFont* pFont; 
HBITMAP hBitmap;CBitmap* pBitmap; 
HPALETTE hPaltte;CPalette* pPalette; 
HRGN hRgn;CRgn* pRgn; 
HMENU hMenu;CMenu* pMenu; 
HWND hCtl;CState* pState; 
HWND hCtl;CButton* pButton; 
HWND hCtl;CEdit* pEdit; 
HWND hCtl;CListBox* pListBox; 
HWND hCtl;CComboBox* pComboBox; 
HWND hCtl;CScrollBar* pScrollBar; 
HSZ hszStr;CString pStr; 
POINT pt;CPoint pt; 
SIZE size;CSize size; 
RECT rect;CRect rect; 


2.一般前缀命名规范前缀 类型 实例 
类或结构 CDocument,CPrintInfo 
m_ 成员变量 m_pDoc,m_nCustomers 


3.变量命名规范前缀 类型 描述 实例 
chchar 8位字符 chGrade 
chTCHAR 如果_UNICODE定义,则为16位字符 chName 
bBOOL 布尔值 bEnable 
nint 整型(其大小依赖于操作系统) nLength 
nUINT无符号值(其大小依赖于操作系统) nHeight 
wWORD 16位无符号值 wPos 
lLONG 32位有符号整型 lOffset 
dwDWORD 32位无符号整型 dwRange 
p* 指针 pDoc 
lpFAR* 远指针 lpszName 
lpszLPSTR 32位字符串指针 lpszName 
lpszLPCSTR 32位常量字符串指针 lpszName 
lpszLPCTSTR 如果_UNICODE定义,则为32位常量字符串指针 lpszName 
hhandle Windows对象句柄 hWnd 
lpfncallback 指向CALLBACK函数的远指针 


4.资源类型命名规范前缀 符号类型 实例 范围 
IDR_不同类型的多个资源共享标识IDR_MAIINFRAME 1~0x6FFF 
IDD_对话框资源IDD_SPELL_CHECK 1~0x6FFF 
HIDD_对话框资源的Help上下文HIDD_SPELL_CHECK 0x20001~0x26FF 
IDB_位图资源IDB_COMPANY_LOGO 1~0x6FFF 
IDC_光标资源IDC_PENCIL 1~0x6FFF 
IDI_图标资源IDI_NOTEPAD 1~0x6FFF 
ID_来自菜单项或工具栏的命令ID_TOOLS_SPELLING 0x8000~0xDFFF 
HID_命令Help上下文HID_TOOLS_SPELLING 0x18000~0x1DFFF 
IDP_消息框提示IDP_INVALID_PARTNO 8~0xDEEF 
HIDP_消息框Help上下文HIDP_INVALID_PARTNO 0x30008~0x3DEFF 
IDS_串资源IDS_COPYRIGHT 1~0x7EEF 
IDC_对话框内的控件IDC_RECALC 8~0xDEEF 


5.Microsoft MFC宏命名规范名称 类型 
_AFXDLL唯一的动态连接库(Dynamic Link Library,DLL)版本 
_ALPHA仅编译DEC Alpha处理器 
_DEBUG包括诊断的调试版本 
_MBCS编译多字节字符集 
_UNICODE在一个应用程序中打开Unicode 
AFXAPIMFC提供的函数 
CALLBACK通过指针回调的函数 


6.库标识符命名法标识符 值和含义 
uANSI(N)或Unicode(U) 
d调试或发行:D = 调试;忽略标识符为发行。 


7.静态库版本命名规范库 描述 
NAFXCWD.LIB调试版本:MFC静态连接库 
NAFXCW.LIB发行版本:MFC静态连接库 
UAFXCWD.LIB调试版本:具有Unicode支持的MFC静态连接库 
UAFXCW.LIB发行版本:具有Unicode支持的MFC静态连接库 


8.动态连接库命名规范名称 类型 
_AFXDLL唯一的动态连接库(DLL)版本 
WINAPIWindows所提供的函数 


9.Windows.h中新的命名规范类型 定义描述 
WINAPI使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型 
CALLBACK使用在应用程序回调函数,如窗口和对话框过程中的FAR PASCAL的位置 
LPCSTR与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*) 
UINT可移植的无符号整型类型,它是unsigned int的同义词 
LRESULT窗口程序返回值的类型 
LPARAM声明lParam所使用的类型,lParam是窗口程序的第四个参数 
WPARAM声明wParam所使用的类型,wParam是窗口程序的第三个参数 
LPVOID一般指针类型,与(void *)相同,可以用来代替LPSTR


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值