VC++常用命名法和宏定义

匈牙利命名法规则

**  一般情况下,变量的取名方式为:**

<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; |

Visual C++常用宏定义命名列表

|-------------|------------------------------------|---------------------|--------------------|
| 前缀 | 符号类型 | 符号例子 | 范围 |
| IDR_ | 标识多个资源共享的类型 | IDR_MAINFRAME | 1 to 0x6FFF |
| IDD_ | 对话框资源(Dialog) | IDD_SPELL_CHECK | 1 to 0x6FFF |
| IDB_ | 位图资源(Bitmap) | IDB_COMPANY_LOGO | 1 to 0x6FFF |
| IDC_ | 光标资源(Cursor) | IDC_PENCIL | 1 to 0x6FFF |
| IDI_ | 图标资源(Icon) | IDI_NOTEPAD | 1 to 0x6FFF |
| ID_IDM_ | 工具栏或菜单栏的命令项 | ID_TOOLS_SPELLING | 0x8000 to 0xDFFF |
| HID_ | 命令上下文帮助(Command Help context) | HID_TOOLS_SPELLING | 0x18000 to 0x1DFFF |
| IDP_ | 消息框提示文字资源 | IDP_INVALID_PARTNO | 8 to 0xDFFF |
| HIDP_ | 消息框上下文帮助(Message-box Help context) | HIDP_INVALID_PARTNO | 0x30008 to 0x3DFFF |
| IDS_ | 字符串资源(String) | IDS_COPYRIGHT | 1 to 0x7FFF |
| IDC_ | 对话框内的控制资源(Control) | IDC_RECALC | 8 to 0xDFFF |

相关推荐
爱和冰阔落33 分钟前
【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生
linux·运维·c++·安卓
水饺编程1 小时前
第5章,[Win32 章节] :贝塞尔样条曲线(一)
c语言·c++·windows·visual studio
程序员打怪兽2 小时前
C++:类与对象,封装,继承,多态,构造/析构,重载/重写
c++
Escalating_xu2 小时前
【C++ STL简介】从六大组件到容器、迭代器与算法协作
java·c++·算法
Brilliantwxx2 小时前
【Linux】 进程(3)深度解析:从查看进程到进程状态
linux·服务器·网络·c++
啊啊啊啊啊!!!!2 小时前
【c++】二叉搜索树
开发语言·c++
ShineWinsu3 小时前
对于 C++:C++20中Concept(概念) 与 Coroutine(协程)的解析
linux·开发语言·网络·c++·c++20·epoll
liulilittle3 小时前
llmx 学习手册 06 —— CPU 指令集优化(AVX-512 三层演进)
c++·学习·算法·ai·llm
skr爱码士3 小时前
05_Qt 核心模块概览——Qt Core、Gui、Widgets、Quick 的职责划分
c++·qt·系统架构·客户端
郝学胜-神的一滴4 小时前
Horse3D 游戏引擎研发笔记(七):Clydesdale——从流式日志到多输出订阅
c++·qt·unity·游戏引擎·图形渲染·unreal engine·opengl