博客
关于我
C编程规范整理
阅读量:499 次
发布时间:2019-03-07

本文共 2329 字,大约阅读时间需要 7 分钟。

C/C++编码规范指南

内联函数的使用规范内联函数适用于函数体较小的情况,能够提升目标代码效率。对于包含循环或switch语句的函数,建议谨慎内联。若内联函数被多个源文件使用,需定义在.h头文件中。

编译器对内联函数请求可以选择忽略,建议保持最大限度的可移植性。

函数参数顺序函数定义时,输入参数应放在前端,输出参数放在后面。对于输入/输出参数(如类/结构体变量),无需遵循顺序。

文件包含顺序包含文件应遵循以下顺序:C库、C++库、其他库的.h文件、项目内的.h文件。

函数长度建议短小函数更容易维护。对于超过40行的函数,可以考虑分割。

const使用建议在任何可能的情况下都应该使用const。

类型命名规范类型命名每个单词以大写字母开头,无下划线:MyExcitingClass, MyEnumValue。类型命名符合一致约定。

变量命名规范变量名应全小写,单词间以下划线相连,类成员变量名以下划线结尾:my_exciting_var, my_member_var。

全局变量命名全局变量可用g_或其他易区分标志为前缀。

函数命名规范函数名应首字母大写,各单词首字母大写,无下划线:AddTableEntry, DeleteUrl。

存取函数命名函数名应与存取变量名匹配:setMyMemberVar。

内联函数可使用小写字母,例如在循环中调用小写名称的函数。

枚举命名规范枚举值应全部大写,单词间下划线相连:MY_VALUE。枚举名可混合大小写:MyErrors.

宏命名规范宏命名应全部大写,各单词下划线相连。

注释要求注释应放在代码上方或右侧,不能放在下方。上方注释需与上方代码隔开,并保持相同缩进。注释语言选择中文,除非能用流利英文表达。

文件头注释文件头、函数头、全局常量及类型定义应采用doxygen格式注释。

代码排版相对独立的程序块之间需加空行。多语句不可在同一行,需分行写出。

断言使用断言旨在验证内部假设,不用于检查运行时错误。

字符串处理所有字符串需以NULL结尾。

注释位置示例/*注释内容 */或// 单行注释

型注释示例/**

  • @brief 功能描述
  • @param param 参数说明*/

代码格式要求保持一致的缩进和格式化,注释示例请参考上述格式。

注释示例/* 处理完成一个case后加注释 *

  • 为下一个case做准备 */

避免使用缩写,除非是业界通用缩写。

注释语言选择为中英文兼用的项目,建议优先使用中文。需根据团队结构确定注释语言。

类型命名示例/**

  • @typedef TypedefName 名义空间中类、结构体等使用相同格式
  • @enumMyErrors 枚举类型*/示例代码实现

当然,编程规范的遵守不仅是代码层面的标准化,更是团队协作、代码维护的基石。代码美观、可读性为加强产品质量奠定基础,对于长期项目开发具有重要意义。

以下是优化后的文章内容:

C/C++编码规范指南

内联函数的使用规范内联函数适用于函数体较小的情况,能够提升目标代码效率。对于包含循环或switch语句的函数,建议谨慎内联。若内联函数被多个源文件使用,需定义在.h头文件中。

编译器对内联函数请求可以选择忽略,建议保持最大限度的可移植性。

函数参数顺序函数定义时,输入参数应放在前端,输出参数放在后面。对于输入/输出参数(如类/结构体变量),无需遵循顺序。

文件包含顺序包含文件应遵循以下顺序:C库、C++库、其他库的.h文件、项目内的.h文件。

函数长度建议短小函数更容易维护。对于超过40行的函数,可以考虑分割。

const使用建议在任何可能的情况下都应该使用const。

类型命名规范类型命名每个单词以大写字母开头,无下划线:MyExcitingClass, MyEnumValue。类型命名符合一致约定。

变量命名规范变量名应全小写,单词间以下划线相连,类成员变量名以下划线结尾:my_exciting_var, my_member_var。

全局变量命名全局变量可用g_或其他易区分标志为前缀。

函数命名规范函数名应首字母大写,各单词首字母大写,无下划线:AddTableEntry, DeleteUrl。

存取函数命名函数名应与存取变量名匹配:setMyMemberVar。

内联函数可使用小写字母,例如在循环中调用小写名称的函数。

枚举命名规范枚举值应全部大写,单词间下划线相连:MY_VALUE。枚举名可混合大小写:MyErrors.

宏命名规范宏命名应全部大写,各单词下划线相连。

注释要求注释应放在代码上方或右侧,不能放在下方。上方注释需与上方代码隔开,并保持相同缩进。注释语言选择中文,除非能用流利英文表达。

文件头注释文件头、函数头、全局常量及类型定义应采用doxygen格式注释。

代码排版相对独立的程序块之间需加空行。多语句不可在同一行,需分行写出。

断言使用断言旨在验证内部假设,不用于检查运行时错误。

字符串处理所有字符串需以NULL结尾。

注释位置示例/*注释内容 */或// 单行注释

类型命名示例/**

  • @typedef TypedefName 名义空间中类、结构体等使用相同格式
  • @enumMyErrors 枚举类型*/代码格式要求保持一致的缩进和格式化,注释示例请参考上述格式。

注释示例/* 处理完成一个case后加注释 *

  • 为下一个case做准备 */

避免使用缩写,除非是业界通用缩写。

注释语言选择为中英文兼用的项目,建议优先使用中文。需根据团队结构确定注释语言。

代码模板示例/**

  • @brief 功能描述
  • @param param 参数说明
  • @return 返回值说明*/

转载地址:http://kbscz.baihongyu.com/

你可能感兴趣的文章
nodejs + socket.io 同时使用http 和 https
查看>>
NodeJS @kubernetes/client-node连接到kubernetes集群的方法
查看>>
Nodejs express 获取url参数,post参数的三种方式
查看>>
nodejs http小爬虫
查看>>
nodejs libararies
查看>>
nodejs npm常用命令
查看>>
nodejs npm常用命令
查看>>
Nodejs process.nextTick() 使用详解
查看>>
nodejs 创建HTTP服务器详解
查看>>
nodejs 发起 GET 请求示例和 POST 请求示例
查看>>
NodeJS 导入导出模块的方法( 代码演示 )
查看>>
nodejs 开发websocket 笔记
查看>>
nodejs 的 Buffer 详解
查看>>
nodejs 读取xlsx文件内容
查看>>
nodejs 运行CMD命令
查看>>
Nodejs+Express+Mysql实现简单用户管理增删改查
查看>>
nodejs+nginx获取真实ip
查看>>
nodejs-mime类型
查看>>
NodeJs——(11)控制权转移next
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>