匈牙利命名法
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;
一般前缀命名规范
前缀
类型
实例
C
类或结构
CDocument,CPrintInfo
m_
成员变量
m_pDoc,m_nCustomers
?
?
?
变量命名规范
前缀
类型
描述
实例
ch
char
8位字符
chGrade
ch
TCHAR
如果_UNICODE定义,则为16位字符
chName
b
BOOL
布尔值
bEnable
n
int
整型(其大小依赖于操作系统)
nLength
n
UINT
无符号值(其大小依赖于操作系统)
nHeight
w
WORD
16位无符号值
wPos
l
LONG
32位有符号整型
lOffset
dw
DWORD
32位无符号整型
dwRange
p
*
指针
pDoc
lp
FAR*
远指针
lpszName
lpsz
LPSTR
32位字符串指针
lpszName
lpsz
LPCSTR
32位常量字符串指针
lpszName
lpsz
LPCTSTR
如果_UNICODE定义,则为32位常量字符串指针
lpszName
h
handle
Windows对象句柄
hWnd
lpfn
callback
指向CALLBACK函数的远指针
?
应用程序符号命名规范
前缀
符号类型
实例
范围
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
?
Microsoft MFC宏命名规范
名称
类型
_AFXDLL
唯一的动态连接库(Dynamic Link Library,DLL)版本
_ALPHA
仅编译DEC Alpha处理器
_DEBUG
包括诊断的调试版本
_MBCS
编译多字节字符集
_UNICODE
在一个应用程序中打开Unicode
AFXAPI
MFC提供的函数
CALLBACK
通过指针回调的函数
库标识符命名法
标识符
值和含义
u
ANSI(N)或Unicode(U)
d
调试或发行:D = 调试;忽略标识符为发行。
静态库版本命名规范
库
描述
NAFXCWD.LIB
调试版本:MFC静态连接库
NAFXCW.LIB
发行版本:MFC静态连接库
UAFXCWD.LIB
调试版本:具有Unicode支持的MFC静态连接库
UAFXCW.LIB
发行版本:具有Unicode支持的MFC静态连接库
动态连接库命名规范
名称
类型
_AFXDLL
唯一的动态连接库(DLL)版本
WINAPI
Windows所提供的函数
?
?
?
?
Windows.h中新的命名规范
类型
定义描述
WINAPI
使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型
CALLBACK
使用在应用程序回叫例程,如窗口和对话框过程中的FAR PASCAL的位置
LPCSTR
与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*)
UINT
可移植的无符号整型类型,其大小由主机环境决定(对于Windows NT和Windows 9x为32位);它是unsigned int的同义词
LRESULT
窗口程序返回值的类型
LPARAM
声明lParam所使用的类型,lParam是窗口程序的第四个参数
WPARAM
声明wParam所使用的类型,wParam是窗口程序的第三个参数
LPVOID
一般指针类型,与(void *)相同,可以用来代替LPSTR
?
表一:匈牙利命名法
前缀
类型
描述
实例
arr
Array
静态数组
arrPoint
b
BOOL
布尔值
bEnabled
by
unsigned char(BYTE)
8位无符号字符
byWeek
ch
Char
8位字符
chGrade
tch
TCHAR
如果是_UNICODE,为16位字符
tchName
i/n
Int
整形(其大小依赖于操作系统)
iRange
u
UINT
无符号整形(其大小依赖于操作系统)
nLength
us
unsigned short
无符号短整形
usPort
w
WORD
16位无符号值
wParam
l
LONG
32位有符号整形
loffset
dw
DWORD
32位无符号整形
dwVolume
f
Float
4字节浮点数
fHigh
d
Double
8字节浮点数
dAmount
cy
CURRENCY
8字节货币类型
cySell
p
*
指针
pDoc
lp
FAR *
远指针
lpDoc
lpsz
LPSTR
为32位字符串指针
lpszName
lpcsz
LPCSTR
32位常量字符串指针
lpcszName
lpctsz
LPCTSTR
如果_UNICODE定义,为32位常量字符串指针
lpctszName
bstr
BSTR
带有4字节长度前缀的w_chart数组
bstrMessage
pbstr
BSTR*
BSTR数据类型指针
pbstrMsg
str
String
CString类型的字符串
strMessage
och
OLECHAR
OLECHAR字符类型
ochX
osz
OLECHAR*
OLECHAR字符串类型
oszX
var
VARIANT
VARIANT数据类型
var
pvar
VARIANT*
VARIANT数据类型指针
pvar
sa
SAFEARRAY
SAFEARRAY数据类型
sa
psa
SAFEARRAY*
SAFEARRAY数据类型指针
psa
dlg
CDialog
Windows对话框
dlg
stc
CStatic
Windows静态文本控件
stc
edt
Cedit
Windows编辑框控件
edt
lsb
CListBox
Windows列表控件
lsb
btn
CButton
Windows按钮控件
btn
scb
CScrollBar
Windows滚动条控件
scb
spn
CSpinButtonCtrl
Windowswe微调按钮控件
spn
tab
CTabCtrl
Windows选项卡控件
tab
rtf
CRichEditCtrl
Windows富文本编辑框控件
rtf
sld
CSliderCtrl
Window滑块控件
sld
list
ClistCtrl
Windows列表控件
list
tre
CtreeCtrl
Windows树形控件
tre
dtc
CDateTimeCtrl
Windows时间选取器控件
dtc
prg
CProgressCtrl
Windows进度指示器控件
prg
cbo
CComboBox
Windows组合框控件
cbo
ils
CImageList
Windows图像列表
ils
tlb
CToolBarCtrl
Windows工具条控件
tlb
mnu
Cmenu
Windows菜单控件
mnu
sta
CStatusBar
Windows状态条控件
sta
wnd
CWnd
Windows窗口
wnd
cx
X
Windows X坐标
cx
cy
Y
Windows Y坐标
cy
pt
Cpoint
Windows点阵
hWnd
size
Csize
Windows尺寸
size
rect/rc
Crect
Windows矩形
rect
pen
Cpen
Windows画笔
pen
br
Cbrush
Windows刷子
br
fnt
Cfont
Windows字体
fnt
cr
COLORREF
Windows颜色值RGB
cr
PMp
Temp
临时变量
PMpBuff
h
Handle
Windows对象句柄
hWnd
lpfn
Callback
指向CALLBACK函数的远指针
lpfnAbort
it/iter
iterator
迭代子
it
vect
std::vector
标准模板库
vect
map
std:map
标准模板库
map
deque
std:deque
标准模板库
deque
list
std:list
标准模板库
list
set
std:set
标准模板库
Set
multiset
std:multiset
标准模板库
multiset
multimap
std:multimap
标准模板库
multimap
指针类型的变量,必须加上前缀"p",如:int* pnValue;。
全局(静态)变量的命名规则同第一条的规定,并且必须加上前缀"g_"。
类成员(静态)变量的命名规则同第一条的规定,并且必须加上前缀"m_"。
模块(函数/过程)内部的重要变量命名遵循第一条的规定。
模块(函数/过程)内部的静态变量命名遵循第一条的规定,并且加上前缀"s_"。
其余变量在不损害程序易读易懂原则的基础上酌情处理。这些变量通常是模块内的临时变量,如循环控制变量、数组的下标等,它们可用缩写进行简化处理,如:int i;。
3.1.1.1 常量命名规则
宏(#define)或者常量修饰符(const):大写字母组成的名词词组,单词间用下划线作为连接符,如:#define INVALID_CLOSE 0; const double INVALID_CLOSE = double(0);。
枚举类型(enum):此时的命名规则同"变量命名的一般性规则",可参考MFC或ADO等的命名方式。
3.1.1.2 函数命名规则
单词构成的动宾词组,每个单词首字母大写,其余字母小写。如:void DrawLine ( void );。
3.1.1.3 类命名规则
类的原型,是前缀"C"加单词构成的动宾词组,每个单词首字母大写,其余字母小写。如:class CStockPacket; class CPacket;。
类的实例变量,采用小写首字母缩写的方式定义,如:CStockPacket sp;。
在对类的成员变量和成员函数定义时,要加以分类,并界定相应的存取权限(参见表二:类成员的分类描述)
表二:类成员的分类描述
分类描述
存取权限(依实际应用而定)
// Constructors
Public
// Attributes
Private
// Operations(对于com组件是//Methods)
Public
// Overridables
Protected
// Implementation
Private
3.1.1.4 结构命名规则
结构的原型采用组合词的方式定义,并且全部采用大写字符的形式。如:
typedef struct tagStockTrans
{
DWORD dwOpen;
...
} STOCKTRANS;
结构的实例变量,采用小写首字母缩写的方式定义,如:STOCKTRANS st;。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jenshy/archive/2006/04/23/673868.aspx