前 缀 类 型 a 数组 (Array) b 布尔值 (Boolean) by 字节 (Byte) c 有符号字符 (Char) cb 无符号字符 (Char Byte ,没有多少人用 ) cr 颜色參考值 (ColorRef) cx,cy 坐标差(长度 ShortInt ) dw Double Word fn 函数 h Handle i 整型 l 长整型 (Long Int) lp Long Pointer m_ 类的成员 n 短整型 (Short Int) np Near Pointer p Pointer s 字符串型 sz 以 null 做结尾的字符串型 (String with Zero End) w Word 可是在不论什么情况下,都硬性规定使用匈牙利命名法是迂腐的。尤其是 Unix 编程,在使用没有变量名、keyword自己主动补齐功能的编辑器,如 vi 下,去敲入大写和小写混合的变量名是痛苦的。事实上仅仅要注意两个原则: 1) 含义清晰,不易混淆; 2) 不和其他模块、系统 API 的命名空间相冲突就可以。 1. 有意识的为变量名、宏名加上本模块的keyword,就不至于和其他模块、系统 API 的命名空间相冲突;比如 : 宏的名称过短,如: DEBUG; 或 _DEBUG ,非常可能和别的模块,系统模块相冲突; 2. 局部变量尤其是循环变量外,使用约定俗成的 i,j,k ,没有问题; 3. 宏、常量、枚举 enum ,所实用大写字母; 4. 全局变量加上前缀 "g" ,后面跟上首字母大写的单词; 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
转载于:https://www.cnblogs.com/bhlsheji/p/4218519.html
相关资源:数据结构—成绩单生成器