【HAL库&CubeMX】2-底层开发代码规范
前言:此文主要针对stm32系列工程,规范代码可以加速开发速度和dbg速度
源文件和头文件格式规范
这里给出比较规范的源文件头文件应该大致具备的一些格式:
/* Includes ---------------------------------------------------------------------*/ #include <name.h> /* Private typedef ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro ------------------------------------------------------------*/ /* Private variables -------------------------------------------------------*/ /* Private function prototypes --------------------------------------------*/ /* Exported variables ----------------------------------------------------*/ /* Function definition --------------------------------------------------*/
说明:
1.Includes区域,引用头文件
2.Private typedef区域,定义仅在本源文件使用的类型
3.Private define区域,一些简单的宏定义
4.Private macro区域,用于宏定义函数
5.Private variables区域,用于仅在本源文件使用的全局变量,建议使用static修饰,防止被其他源文件误引用
6.Private function prototypes区域,用于声明仅在本源文件使用的函数
7.Exported variables区域,用于声明会被extern的变量,该区域的变量均应在name.h的Extern variables区域中extern
8.Function definition区域,函数定义
个人记忆:"IT Dog MoVe Fish" ,意思是 IT狗感动鱼。
头文件规范如下:
1 #ifndef _NAME_H 2 #define _NAME_H 3 /* Exported typedef -----------------------------------------------------*/ 4 /* Exported function prototypes ----------------------------------------*/ 5 /* Extern variables ---------------------------------------------------*/ 6 #endif
说明:
1.Export typedef区域,定义会被其他源文件使用的类型
2.Exported function prototypes区域,声明会被其他源文件使用的函数
3.Extern variables区域,用于声明会被extern的变量,该区域用于extern的Extern variables区域中的变量
说一下这么写的目的,name.h中 if 的目的显而易见,为了避免重复引用(主要是针对extern的变量),然后特地在源文件和头文件中划分一个区域用来声明需要export的变量,一是便于dbg,二是这里运用的是封装的思想,但凡需要使用源文件的东西,无论函数还是变量,都只需引用头文件即可。
另外,个人十分不喜在头文件中引用其他头文件,除非是一个专用的include.h(专用于引用其他头文件,为了美观?),否则我们应该极力避免在头文件中引用其他头文件,这样会使得引用链十分繁琐。
————————————————
版权声明:本文为CSDN博主「We all are 鸽德」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/The_K_is_on_the_way/article/details/79864076