在编程时,变量、函数的命名是一个极其重要的问题。好的命名方法使变量易于记忆且程序可读性大大提高。Microsoft采用匈牙利命名法来命名Windows API函数和变量。匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这种命名法叫匈牙利命名法。
匈牙利命名法为C标识符的命名定义了一种非常标准化的方式,这种命名方式是以两条规则为基础:
1.标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。
2.在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单词清楚地指出了源代码内那个对象的用途。比如,m_szStudentName表示一个学生名字的类成员变量,数据类型是字符串型。
附录:
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 |
| S |
结构体 | SAddress |
| m_ |
成员变量 |
m_pDoc,m_nCustomers |
变量命名规范
| 前缀 |
类型 |
描述 |
实例 |
| c |
char |
8位字符 |
cGrade |
| str | string | 字符型 | strName |
| ch |
TCHAR |
如果_UNICODE定义,则为16位字符 |
chName |
| b |
BOOL |
布尔值 |
bEnable |
| n ,i |
int |
整型(其大小依赖于操作系统) |
nLength |
| si |
short int | 短整型 | siSequ |
| n |
UINT |
无符号值(其大小依赖于操作系统) |
nHeight |
| w |
WORD |
16位无符号值 |
wPos |
| f |
float | 浮点型 | fRadius |
| d |
double | 双精度型 | dArea |
| l |
LONG |
长整型 |
lOffset |
| ld |
long double | 长双精度型 | ldRate |
| 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函数的远指针 |
? |
| if |
输入文件流 | ifDataFile | |
| of |
输出文件流 | ofStuFile | |
| sz |
以"\0"结束的字符串 | szAppName |
浙公网安备 33010602011771号