C++匈牙利命名规范详解

需积分: 9 2 下载量 165 浏览量 更新于2024-09-20 收藏 198KB PDF 举报
"本文主要介绍了C++编程中的一种命名规范——匈牙利命名规则,包括变量、函数等的命名约定,以及特殊类型的前缀和范围前缀,旨在帮助C++新手更好地理解和遵循代码规范,提高代码可读性。" 在C++编程中,匈牙利命名规则是一种广泛使用的命名约定,它有助于提升代码的可读性和一致性。根据描述和提供的部分内容,我们可以深入探讨这种规则: 1. **变量命名**: - 变量的名称由三部分组成:`<scope_>`(范围前缀)、`<prefix_>`(类型前缀)和`<qualifier>`(限定词)。例如,`m_nCount`,其中`m_`表示成员变量,`n`表示整型,`Count`是变量的具体名称。 2. **类型前缀**: - 类型前缀用于标识变量的数据类型。如: - `Lm`:表示类。 - `I`:表示接口。 - `LmObject`:表示属于`Lm`范围的类。 - `IUnknown`:表示一个接口。 3. **特殊类型命名约定**: - `Lm`:用于类名,表示类的通用含义,而实例命名通常带上前缀`_`,如`_StartPoint`和`_EndPoint`。 - 特殊约定如`_Mt`用于`MouseTool`派生类,`CDlg`用于对话框类,`_Rb`用于橡皮条类。 4. **范围前缀**: - 用来标识变量的作用域: - `g_`:全局作用域,如`g_Servers`。 - `m_`:成员变量,如`m_pDoc`。 - `l_`:局部作用域,如`l_strName`,尽管建议尽量减少使用全局变量。 5. **特征模块前缀**: - 对于特定功能模块,可以使用相应的前缀,如`Fea`(特征模块)、`Sket`(草图模块)、`Asm`(装配模块)、`Lay`(工程图模块)、`Surf`(曲面模块)和`Ui`(界面模块)。 6. **常用数据类型前缀**: - `ch`:8位字符,如`chGrade`。 - `TCHAR`:如果定义了`UNICODE`,则为16位字符,如`chName`。 - `b`:布尔值,如`bEnabled`。 - `n`:整型,大小依赖于操作系统,如`nLength`。 - `w`:16位无符号值,如`wPos`。 - `l`:32位有符号整数,如`lOffset`。 - `dw`:32位无符号整数,如`dwRange`。 - `p`:指针,如`pDoc`。 - `lp`:远指针,如`lpDoc`。 - `lpsz`:32位指向字符串的指针,如`lpszLPSTR`。 遵循匈牙利命名规则,可以使得代码更易阅读和理解,尤其是当项目规模较大,涉及多个开发者协作时,统一的命名规范至关重要。同时,良好的命名习惯也能降低维护成本,提高代码质量。因此,无论是新手还是经验丰富的开发者,都应该重视并熟练掌握这种命名规则。