MCU嵌入式C代码编码规范

  

目次. I

前言. II

1 规范制定说明. 1

2 适用范围. 1

3 基本原则. 1

4 组织构成及排版要求. 1

4.1组织构成及包含内容. 1

4.2 文件书写的层次. 1

4.3 排版要求. 2

5 注释. 3

扫描二维码关注公众号,回复: 16708622 查看本文章

5.1文件头和函数头. 3

5.2 注释. 4

6 命名规则. 5

6.1 命名规则总则. 5

6.2 变量命名规则. 6

6.3文件及函数命名. 7

6.4新定义的类型命名规范. 7

7 变量、常量、宏定义与类型. 7

8.指针和数组、结构与联合. 8

9 初始化、声明和定义. 9

9.1初始化. 9

9.2声明和定义. 9

10 控制语句和表达式. 10

11 函数. 10

12 预处理指令. 11

13 其余规则. 11

  

为提高产品代码质量,指导嵌入式软件开发人员编写出简洁、可维护、可靠、可测试、高效、可移植的代码,避开危险的编程方式,编写了本规范。

本标准由XX公司  XX部提出。

本标准由XX公司  XX部归口。 

本标准起草单位:

本标准主要起草人:

本标准主要修改人:

参考《MISRA 2004编码规则》。

编制

校对

审核

标准

批准

批准日期

XX

XX

嵌入式编程手写C代码编码规范

1 规范制定说明

本规范制定的意义在于提高代码的可读性,使代码标准化,为代码的集成、测试、维护、审查提供便利。

本规范作用在于约束代码编写规则,宗旨是使得代码简洁明了,可读性及可移植性强、易于维护。

本规范给出嵌入式软件C语言编码格式要求,并从排版要求、注释要求、命名规则、变量常量宏定义及类型、初始化、声明及定义、控制语句与表达式等方面详细给出编码规则,便于C语言编码人员及代码静态测试人员使用。

2 适用范围

本规范适用于XX公司嵌入式编程手写C代码开发,如VCU控制器手写代码部分的开发。

3 基本原则

1)代码简洁、语句清晰,风格统一。     

2)注释清晰明了,便于阅读。

3)代码结构清晰,可读性强,便于维护与测试。

4)模块化编程,尽量少用全局变量,避免使用GOTO语句。

5)通俗易懂不产生歧义。

4 组织构成及排版要求

4.1组织构成及包含内容

嵌入式代码源代码中包含头文件(.h)及源文件(.c),包含的内容为:

1)头文件:文件头说明、提供给外部参考的类型、常量、宏定义、(全局)函数声明、全局变量的原型声明,不要定义变量。

2)源文件:文件头说明、函数头说明、只在本文件中使用的类型、常量、宏定义及全局变量和文件级(static)变量定义。

4.2 文件书写的层次

1)实现文件(.C文件)的层次:

文件头

#include (依次为标准库头文件,非标准库头文件)

文件内部常量定义

文件内部宏定义

文件内部数据类型

文件内部静态全局变量

函数原型定义

2)声明文件(.H文件)的层次:

文件头

#ifndef _文件名_H (全大写)

#define _文件名_H (全大写)

其他条件编译选项

#include (依次为标准库头文件,非标准库头文件)

全局常量声明

全局宏声明

全局数据类型声明

全局变量声明

外部引用

全局函数原型声明

#endif  /* _文件名_H */

注意事项:

  1. 头文件尽量通过宏定义避免重复包含。
  2. 包含标准库头文件使用尖括号“<>”,包含非标准库头文件使用双引号“” ””。

4.3 排版要求

  1. 程序块采用缩进风格编写,缩进的空格数为4个,缩进采用空格键,不使用tab键。
  2. 相对独立的程序块之间、变量说明后必须加空行。
  3. 代码行不宜过长,较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

eg:act_task_table[taskno].duration_true_or_false

              = SYS_get_sccp_statistic_state( stat_item );

  1. 若函数或过程中的参数较长,则要进行适当的划分。函数调用和函数声明续行在第一个参数处对齐,类型与名称不能分行书写。

eg:

n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER

                                           + index, stat_object );

  1. 在函数体的开始、结构体的定义、联合体的定义、枚举的定义以及if、for、do、while、sw

猜你喜欢

转载自blog.csdn.net/weixin_45905610/article/details/128435404