第一部分
匈牙利命名法规则
一般情况下,变量的取名方式为:
<scope_> + <prefix_> + <qualifier>。
范围前缀_,类型前缀_,限定词。
特殊的类型命名,前缀表示:
类、接口
|
前缀 |
类型 |
例子 |
备注 |
|
Lm |
Class |
LmObject |
表示类型本身 |
|
I |
Interface 接口 |
IUnknown |
注:类名前缀改为Lm,对于非全局的类最好有语义表示其所属模块。类的实例命名与类名大致相同,只是类名语义表示类的通用含义,而类名表示此实例的具体语义。如类名LmSketPoint表示草图点的类定义,而它的两个实例 _StartPoint,_EndPoint分别代表起点和终点的语义。类的实例命名带上前缀_。
特殊约定:
a. MouseTool的派生类的前缀为_Mt.
b. 对话框类的前缀为CDlg.
c. 橡皮条类的前缀为_Rb.
范围前缀:
|
前缀 |
类型 |
例子 |
备注 |
|
g_ |
全局作用域 |
g_Servers |
|
|
m_ |
成员变量 |
m_pDoc, | |
|
l_ |
局部作用域 |
l_strName |
少用 |
注:编程时尽量少用全程变量,对于全程变量还应在类型前缀后加上如下关键字:
特征模块 : Fea
草图模块 : Sket
装配模块 : Asm
工程图模块 : Lay
曲面模块 : Surf
界面模块 : Ui
常用的一般数据类型的前缀
|
前缀 |
类型 |
内存规格描述 |
例子 |
|
ch |
char |
8-bit character |
chGrade |
|
ch |
TCHAR |
16-bit character if _UNICODE is defined |
chName |
|
b |
BOOL |
Boolean value |
bEnabled |
|
n |
int |
Integer (size dependent on operating system) |
nLength |
|
n |
UINT |
Unsigned value (size dependent on operating system) |
nLength |
|
w |
WORD |
16-bit unsigned value |
wPos |
|
l |
LONG |
32-bit signed integer |
lOffset |
|
dw |
DWORD |
32-bit unsigned integer |
dwRange |
|
p |
* |
Ambient memory model pointer |
pDoc |
|
lp |
FAR* |
Far pointer |
lpDoc |
|
lpsz |
LPSTR |
32-bit pointer to character string |
lpszName |
|
lpsz |
LPCSTR |
32-bit pointer to constant character string |
lpszName |
|
lpsz |
LPCTSTR |
32-bit pointer to constant character string if _UNICODE is defined |
lpszName |
|
h |
handle |
Handle to Windows object |
hWnd |
|
lpfn |
(*fn)() |
callbackFar pointer to CALLBACK function |
lpfnAbort |
常用Windows对象名称缩写
|
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 |
hPalette; |
CPalette* |
pPalette; |
|
HRGN |
hRgn; |
CRgn* |
pRgn; |
|
HMENU |
hMenu; |
CMenu* |
pMenu; |
|
HWND |
hCtl; |
CStatic* |
pStatic; |
|
HWND |
hCtl; |
CButton* |
pBtn; |
|
HWND |
hCtl; |
CEdit* |
pEdit; |
|
HWND |
hCtl; |
CListBox* |
pListBox; |
|
HWND |
hCtl; |
CComboBox* |
pComboBox; |
