C/C++命名规范:详解公司内部通用规则
需积分: 19 15 浏览量
更新于2024-09-09
收藏 104KB DOC 举报
C/C++命名规则是编程中至关重要的组成部分,它不仅有助于代码的可读性和维护性,还能提升团队间的协作效率。本文将详细介绍C/C++中的一套较为规范的命名约定,这些规则被众多公司内部开发团队广泛采用。
1. **名称格式**:
遵循"谁—做什么"的原则,函数名应该清晰地表达其功能。例如,`avHeadsetConnectKalimbaToPcm`函数表示音频设备连接操作。对于函数名,通常采用模块名(小写)加上操作或描述性名称的形式。此外,宏常使用大写模块名后跟下划线和名称,如`AV_HEADSET_CONNECT_KALIMBA_TO_PCM`。
2. **变量命名**:
- **全局变量**:使用前缀`g_`,如`g_uiCount`,表示全局变量。
- **成员变量**:
- 类成员:前缀`m_`,如`m_uiCount`。
- 结构体变量:结构体名称本身,如`uiCount`,如果在结构体内部,可以省略结构体名前缀。
- **局部变量**:直接使用类型+名称,如`uiCount`。
- **函数参数**:与局部变量类似,类型+名称,如`uiCount`。
- **静态变量**:`s_`前缀,如`s_uiCount`。
3. **变量类型**:
- **标准类型**:包括`Char`(c)、`Uchar`(uc)、`Int`(i)、`Uint`(ui)、`func`(函数指针),以及一些特定的类型如`DWORD`(无符号长整数)和`BOOL`(布尔类型)。
- **自定义数据结构**:使用数据结构名的缩写和小写,例如`struct_sLinkHeader`,结构体名后加下划线,如`sLinkHeader`;类名用_c,枚举名用_e,联合名用_u。
4. **Typedef**:
使用`typedef`来创建别名,如`t_sLinkHeader`,用于简化类型定义。例如,`typedef struct_sLinkHeader{} t_sLinkHeader;`定义了一个名为`t_sLinkHeader`的新类型,它实际上就是`struct_sLinkHeader`类型的别名。
5. **命名规则示例**:
- 变量名`g_dwMaxBufferSize`表示全局的、最大缓冲区大小的无符号长整数。
- 类成员`m_cClassInstance`代表类的实例计数器。
- 结构体变量`struct_sLinkHeader lh`直接使用结构体名。
遵循这些命名规则,可以使代码在阅读时更易于理解,特别是对于大型项目和团队协作。通过保持一致性,可以减少命名冲突,提高代码质量,降低维护成本。在实际开发中,企业可能会根据自身需求对这些规则进行微调,但整体框架是通用且推荐的。
2020-03-03 上传
2011-12-23 上传
2023-03-09 上传
2021-10-03 上传
2013-08-06 上传
2010-07-02 上传
2010-03-16 上传
come_onboy
- 粉丝: 0
- 资源: 2
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析