C++匈牙利命名规范详解
需积分: 9 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`。
遵循匈牙利命名规则,可以使得代码更易阅读和理解,尤其是当项目规模较大,涉及多个开发者协作时,统一的命名规范至关重要。同时,良好的命名习惯也能降低维护成本,提高代码质量。因此,无论是新手还是经验丰富的开发者,都应该重视并熟练掌握这种命名规则。
2012-07-23 上传
2017-12-19 上传
2008-10-13 上传
2020-12-22 上传
2011-03-18 上传
2009-04-16 上传
2012-10-23 上传
2011-10-22 上传
2009-07-30 上传
vlismxc
- 粉丝: 3
- 资源: 30
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录