文档首页 > > 流程指导> 参与贡献> 编码规范

编码规范

分享
更新时间: 2018/12/16 GMT+08:00

此编程规范在业界通用的编程规范基础上进行了整理,供开发者参考使用。

总体原则

  • 清晰,易于维护、易于重构;
  • 简洁,易于理解,并且易于实现;
  • 风格统一,代码整体风格保持统一;
  • 通用性,遵循业界通用的编程规范;

目录结构

建议将工程按照功能模块划分子目录(可参考LiteOS的功能模块划分),子目录再定义头文件和源文件目录。

头文件

  • 设计原则
    • 头文件应当职责单一;
    • 头文件中适合放置接口的声明,不适合放置实现;
    • 不要在头文件中定义变量;
    • 建议每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口;
    • 一个模块通常包含多个.c文件,建议放在同一个目录下,目录名即为模块名;如果一个模块包含多个子模块,则建议每一个子模块提供一个对外的.h,文件名为子模块名
  • 版权声明
    • 头文件版权声明一致,放在头文件置顶位置;
    • 如果提交的代码是在开源软件基础上修改所编写或衍生的代码,请遵循开源许可协议要求,并且已完成履行被修改软件的许可证义务;

函数

  • 重复代码应该尽可能提炼成函数;
  • 避免函数过长,新增函数不超过40-50行;
  • 避免函数的代码块嵌套过深;
  • 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用;

变量

  • 一个变量只有一个功能,不要把一个变量用作多种用途;
  • 防止局部变量与全局变量同名;
  • 不用或者少用全局变量;
  • 在首次使用前初始化变量;

注释

  • 注释风格要统一,注释的内容要清楚、明了,含义准确,防止注释二义性;
  • 在代码的功能、意图层次上进行注释,即注释解释代码难以直接表达的意图,而不是仅仅重复描述代码;
  • 函数声明处注释描述函数功能、性能及用法,包括输入和输出参数、函数返回值、可重入的要求等;定义处详细描述函数功能和实现要点,如实现的简要步骤、实现的理由、设计约束等;
  • 全局变量要有较详细的注释,包括对其功能、取值范围以及存取时注意事项等的说明;
  • 注释应放在其代码上方相邻位置或右方;
  • 避免在注释中使用缩写,除非是业界通用或子系统内标准化的缩写;
  • 文件头部要进行注释,建议注释列出:版权说明、版本号、生成日期、作者姓名、功能说明、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明;

排版与格式

  • 程序块采用缩进风格编写,每级缩进为4个空格;
  • 相对独立的程序块之间、变量说明之后必须加空行;
  • 一条语句不能过长,如不能拆分需要分行写;
  • 一行只写一条语句;
  • if、for、do、while、case、switch、default等语句独占一行;
  • 源程序中关系较为紧密的代码应尽可能相邻;

可移植性

不使用与硬件或操作系统关系很大的语句,而使用建议的标准语句,以提高软件的可移植性和可重用性;

业界编程规范

C语言编程规范参考资料较多,大家可以自行了解,本文不再过多赘述;

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区