首页 > 其他分享 >底层开发代码规范

底层开发代码规范

时间:2023-06-29 18:45:06浏览次数:43  
标签:头文件 代码 规范 Private 源文件 区域 Exported variables 底层

前言:此文主要针对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区域,函数定义

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

标签:头文件,代码,规范,Private,源文件,区域,Exported,variables,底层
From: https://www.cnblogs.com/FBsharl/p/17514969.html

相关文章

  • 基于支持向量机(SVM)的手写字母识别 matlab代码
    基于支持向量机(SVM)的手写字母识别matlab代码原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/642898456927.html......
  • MATLAB代码:分布式最优潮流 本文以全局电压的低成本快速控制为目标,提出基于电气距离和
    MATLAB代码:分布式最优潮流关键词:网络划分;分布式光伏;集群电压控制;分布式优化;有功缩减参考文档:《含分布式光伏的配电网集群划分和集群电压协调控制》仿真平台:MATLAB主要内容:本文以全局电压的低成本快速控制为目标,提出基于电气距离和区域电压调节能力的集群综合性能指标和网络划分......
  • MATLAB代码:基于两阶段鲁棒优化算法的多微网联合调度及容量配置
    MATLAB代码:基于两阶段鲁棒优化算法的多微网联合调度及容量配置关键词:多微网优化调度 容量配置两阶段鲁棒 仿真平台:MATLABYALMIP+CPLEX主要内容:代码主要做的是一个微网在四种典型日场景下各电源容量优化配置以及微网的联合优化调度问题,微网的聚合单元包括风电、光伏、燃气......
  • MATLAB代码:基于两阶段鲁棒优化算法的多微网联合调度及容量配置
    MATLAB代码:基于两阶段鲁棒优化算法的多微网联合调度及容量配置关键词:多微网优化调度 容量配置两阶段鲁棒 仿真平台:MATLABYALMIP+CPLEX主要内容:代码主要做的是一个微网在四种典型日场景下各电源容量优化配置以及微网的联合优化调度问题,微网的聚合单元包括风电、光伏、燃气......
  • MATLAB代码:基于主从博弈理论的共享储能与综合能源微dian网优化运行研究
    MATLAB代码:基于主从博弈理论的共享储能与综合能源微dian网优化运行研究关键词:主从博弈共享储能综合能源微dian网优化调度 参考文档:《基于主从博弈理论的共享储能与综合能源微dian网优化运行研究》完全复现原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/672932543894.htm......
  • 如何用低代码开发平台快速实现单据打印功能?
    每家企业在日常工作中,业务流转时,都经常需要在线打印各种纸质文件,如凭证、采购单、出入库单据、销售合同等,不同企业都有个性化的排版要求,每一次需要在固定文档模板的基础上重新填充业务数据,过程中难免会遇到数据错漏、耗时费力等问题。事实上,虽然“无纸化办公”正在成为企业信息化......
  • 代码随想录算法训练营第二十天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索
    669.修剪二叉搜索树思路递归法: 需要思考清楚,如果当前节点<low,那么就返回递归它的右节点,而不是自己取判断,找出来一个合适的节点,这样的话会越想越乱代码:1TreeNode*trimBST_cursor(TreeNode*root,intlow,inthigh){2if(!root)returnnullptr;34if......
  • centos8.3 openssh8.0p1升级到9.0P1代码
    #!/bin/shcd/etc/yum.repos.dmkdirbackupmvCent*backupwget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-8.repoyum-ycleanallyum-ymakecacheyum-yinstallgccgcc-c++glibcmakeautoconfopensslopenssl-deve......
  • 规范网络游戏 前置审批是关键
    10/20/20098:16:48PM针对长期以来在网络游戏管理中存在的自设审批、重复审查等问题,近日,中央编办发布《关于印发〈中央编办对文化部、广电总局、新闻出版总署三定规定中有关动漫、网络游戏和文化市场综合执法的部分条文的解释〉的通知》,明确:对经新闻出版总署前置审批过的网络游戏,......
  • Iterator和LlistIterator迭代器的使用及底层原理:
    先来看下面的示例:publicclassDemo{publicstaticvoidmain(String[]args)throwsIOException{List<String>list=newLinkedList<>();list.add("唐僧");list.add("孙悟空");list.add("猪八戒")......