底层开发代码规范

时间:2022-05-05 20:09:54

前言:此文主要针对stm32系列工程,规范代码可以加速开发速度和dbg速度

源文件和头文件格式规范

 这里给出比较规范的源文件和头文件应该大致具备的一些格式。
name.c:

/* 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区域,函数定义

name.h:

#ifndef _NAME_H
#define _NAME_H
/* Exported typedef -----------------------------------------------------*/
/* Exported function prototypes ----------------------------------------*/
/* Extern variables ---------------------------------------------------*/
#endif

说明:
1.Export typedef区域,定义会被其他源文件使用的类型
2.Exported function prototypes区域,声明会被其他源文件使用的函数
3.Extern variables区域,用于声明会被extern的变量,该区域用于extern的Extern variables区域中的变量

说一下这么写的目的,name.h中 if 的目的显而易见,为了避免重复引用(主要是针对extern的变量),然后特地在源文件和头文件中划分一个区域用来声明需要export的变量,一是便于dbg,二是这里运用的是封装的思想,但凡需要使用源文件的东西,无论函数还是变量,都只需引用头文件即可。
另外,个人十分不喜在头文件中引用其他头文件,除非是一个专用的include.h(专用于引用其他头文件,为了美观?),否则我们应该极力避免在头文件中引用其他头文件,这样会使得引用链十分繁琐。