嵌入式代码的规范性之注释

简介: 嵌入式代码的规范性之注释

简介:

对于代码的规范性不管是做纯软件开发的还是做嵌入式开发的或者使用各种语言的,都是非常重要的。代码的规范性对编写人员对代码后期的维护以及其他开发人员阅读等都是非常友好的。接下来我们会对代码的规范性进行说明(当然,根据个人的情况和企业的不同可能要求不一样,我就根据我个人的一个情况进行一些说明,本专题不作为最终范本,仅用来作为参考)

注释问题

本篇就说说代码的注释问题,这东西就像去饭店吃饭一样,有菜单、指示牌等。注释就相当于这些,是对代码的一种说明。

头部注释

说明性文件(例如.h)

注释要列出下列几项:版权说明、版本号、生成日期、作者、内容、 功能、与其它文件的关系、修改日志等,头文件的注释中以及函数功能简要说明。 

例如:

1/*****************************************************************************
 2Copyright (c) 2016  XXXXXXXXXXXXXXXXX., Ltd. All rights reserved.
 3
 4File name:/*文件名*/
 5Date      Author:       Version: /*作者、版本及完成日期*/
 6
 7Description:/*用于详细说明此程序文件完成的主要功能,
 8                与其他模块或函数的接口,输出值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系*/
 9
10Others:/*其它内容的说明*/
11
12Function List:/*主要函数列表,每条记录应包括函数名及功能简要说明*/
131.…
14History:
15/*修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述*/
16
171. Date:
18Author:
19Modification:
202.…
21
22*****************************************************************************/


源文件头部注释

源文件头部注释要有版本说明、版本号等

版权说明、版本号、 生成日期、作者、模块目的/功能、主要函数、修改日志、修改人、修改日期等

1/***********************************************************************
 2*   Copyright (C) company name  xxxCo., Ltd.                *
 3*                            All Rights Reserved.                      *
 4*   Department :                                          *
 5*   AUTHOR     : NSF                                                 *
 6************************************************************************
 7* Object        :
 8* Module        :
 9* Instance      :
10* Description   :/*模块描述*/
11*-----------------------------------------------------------------------
12* Version:
13* Date:
14* Author:  /*作者*/
15***********************************************************************/
16/*-History--------------------------------------------------------------
17* Version       Date         Name    Changes and comments
18*=====================================================================*/


函数头部注释

列出函数的作用、目的、输入输出参数等

1/************************************************* 
2Function: /* 函数名称*/
3Description: /* 函数功能、性能等的描述*/
4Input: /* 输入参数说明,包括每个参数的作用、取值说明及参数间关系。*/ 
5Output: /* 对输出参数的说明。*/
6Return: /* 函数返回值的说明*/
7Others: /* 其它说明,应标明是否是可重入函数*/
8*************************************************/


在写代码的同时,我们尽量编写代码编注释,同时修改代码也要有相对应的注释,目的是为了注释和代码的一致性(想想你把项目写完了再去注释,你还知道哪跟哪不?)


要对所有的变量、常量其命名不能够充分解释其代表的意义,要进行说明。

比如:

1/* active statistic task number */
2#define ACT_TASK_NUMBER 1000
3
4#define ACT_TASK_NUMBER 1000 /* active statistic task number */

数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。


对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。


统一保存为UTF-8代码编码格式(这个任何编译器都有的,但是对于GB并不是所有的都支持) 。

在代码的功能、意图层次上进行注释,提供有用、额外的信息。


相关文章
|
传感器 调度 开发者
【Freertos基础入门】freertos任务的优先级
【Freertos基础入门】freertos任务的优先级
1611 0
|
数据格式
STM32外设系列—红外遥控
本文详细介绍了红外通信的应用,原理。介绍了一种常用的二进制脉冲码形式。最后,给出了红外遥控的实现思路和程序设计。
1008 2
STM32外设系列—红外遥控
ESP-01S连接OneNET上报温湿度信息
本文介绍了如何利用ESP-01S连接OneNET上报温湿度信息,其中包括如何烧录固件,如何配置OneNET平台,如何进行连接测试。最后,给出了一部分程序设计。
842 0
ESP-01S连接OneNET上报温湿度信息
|
数据挖掘 项目管理 数据库
用语雀数据表做项目管理
项目管理是技术同学经常会面临的课题,有没有什么轻量级的工具可以便捷使用呢? 且看看科技公司项目经理的实践案例吧~
|
算法 程序员 开发工具
C语言编程规范
C 语言编程规范有助于提升代码的可读性、可维护性和可移植性。主要包括:命名规范(如 `my_variable`、`MAX_SIZE`)、代码缩进与空格、注释(解释逻辑但不过度)、函数设计(短小精悍、参数不超过三个)、错误处理、避免魔法数字、选择合适数据结构、使用标准库、保持代码格式一致及版本控制。遵循这些规范能显著提高团队开发效率和代码质量。
1222 2
|
敏捷开发 设计模式 Unix
嵌入式C语言代码的基本编写规范要求
嵌入式C语言代码的基本编写规范要求
385 0
|
设计模式 Java 关系型数据库
【阿里规约】阿里开发手册解读——命名规范篇
本文中所有代码命名规范遵循《阿里规约》,从包名、类名、变量名等角度展开,详细阐述测试类、枚举类、数组、布尔型变量、方法等元素的命名规范。
【阿里规约】阿里开发手册解读——命名规范篇
|
人工智能 开发者 芯片
【51单片机】单片机开发者的福音: 让AI看电路图帮你编写程序(使用ChatGPT 中训练好的单片机工程师模型)
使用AI大语言模型编写 单片机程序. 使用的是 OpenAI公司发布的 ChatGPT .在ChatGPT上有别人训练好的 单片机工程师 with Keil uVision 5 - C Code Explainer模型, 可以上传电路图改模型可以通过这个用户所给的电路图进行编程.
2746 0
【51单片机】单片机开发者的福音: 让AI看电路图帮你编写程序(使用ChatGPT 中训练好的单片机工程师模型)
|
调度
FreeRTOS深入教程(空闲任务和Tick中断深入分析)
FreeRTOS深入教程(空闲任务和Tick中断深入分析)
672 0