c代码文件内布局规范
从上到下按如下布局代码:
1 *.h文件内代码布局规范
- 文件头注释。
- 文件条件编译宏。
- 头文件包含。
- 普通宏定义
- 结构体定义。
- 联合定义。
- 枚举定义。
- 宏定义。
- 全局变量声明。
- 全局函数声明。
- 宏函数定义。
2 *.c文件内代码布局规范
- 文件头注释。
- 头文件包含。
- 变量定义(按类型分类,从占字节少到字节多,然后是结构体、联合、枚举变量)。
- 函数定义。
文章作者: OnlyCalm
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OnlyCalm's Blog!
相关推荐

2020-03-14
SVN软件开发日志规范
SVN SVN软件开发日志规范前言: 写代码的好习惯除了言简意赅的注释外,还有完善且必要的日志。注释主要是对代码内的模块或功能函数、算法、逻辑框架等进行必要简明的说明,它关注的是”这个“代码里做了什么。而日志需要说明的是这版代码和上一版本改了什么(重点关注代码的升级迭代、用途、风险),和其他代码有啥关系(比如关注是否某些功能模块借鉴或移植于其他项目)。所以日志主要关注的是“这些”代码之间的关系(改动、移植),以及怎么用它,有何风险。所以不要觉得代码里写了足够的注释就不需要写Log了,经验丰富的软件开发们会形成自己完整的一套规范风格。 1...

2020-03-10
c代码Doxygen注释规范
c代码Doxygen注释规范前言: 良好得注释风格利于后期维护和团队协作开发,使得代码逻辑清晰,意图明了。Doxygen是一种能自动提取代码内注释生成版主文档的开源软件,它是跨平台的。非开源项目也许并不需要有这样一份帮助文档,但Doxygen的注释规范也不失为一种好的风格,可以推广遵守。 1 Doxygen注释规范模板1.1 文件注释模板123456789/** * @file 文件名(*.h/*.c) * @brief 该模块功能的简介。 * @details 使用该模块有哪些细节注意等。 * @author 创建该文件的人名。 * @data 该文件的创建日期(2020-03-10)。 * @version 文件或模块版本号(V1.0.0)。 * @copyright 版权所属公司。 */ 若某项无相关的说明,中文写 无 ,英文写 None ,此时末尾不加标点,若有相关的说明,则建议正常使用标点符号,包括句末标点。 1.2 函数注释模板1.2.1 完整格式1234567891011121314151617181920/** *...

2020-03-10
c代码命名规范
c代码命名规范前言: 为了兼容不同供应商的芯片驱动库,最好的办法是使用自定义的数据类型等,这样有利于代码的重用性和移植性。 1 变量命名1.1 命名前缀12345678910111213//类型宏定义,为了屏蔽不同芯片库文件的变量类型名称不一致,增强可移植性typedef _Bool Bool; //!< 布尔类型变量,变量命名时前缀加btypedef uint8_t Byte; //!< 1个字节无符号整型,变量命名时前缀加bytypedef uint16_t Word; //!< 2个字节无符号整型,变量命名时前缀加wtypedef uint32_t DWord; //!<...

2019-08-12
模拟PWM波的自适应取阈值算法
模拟PWM波的自适应取阈值算法前言: 单片机开发中,我们常常接触到的波形就是PWM波,一般都是0~3.3V的数字PWM波,很少涉及模拟PWM波。两者有什么不同呢?模拟PWM波不只有高低电平,还有中间的一些变化过程,且波形可能也不是规整的矩形波,再者它的电压可能超过3.3v导致无法直接用单片机IO口识别,PWM无法直接捕获到上升下降沿。 如果你预算充足,开发的设备也不是非常的小型话,可以容纳额外的电路,那么你可以考虑从硬件上增加一些运放电路或整形电路,尽可能将模拟PWM变为数字PWM,如果不行就得考虑串联电阻来分压,然后代码中通过AD采样到数据后进行算法处理。 1 自适应算法1.1 自适应取阈值算法思路: 这里的MAX,MIN,LOW电压值都是不确定的,受传输距离和干扰影响。 1.2...

2021-03-27
c进阶篇(二)——编程命名规范
c进阶篇(二)——编程命名规范前言: 目前嵌入式常用的编程命名规范有驼峰命名法、匈牙利命名法、下划线命名法等。几种命名规范各有特色,但原则是开发人员之间保持统一的一套规范,如果是在现有的代码上开发,那么最好继续保持代码当前使用的编程规范,而不是盲目坚持自己的习惯。换句话说建议对几种常用命名规范都有所熟悉。有些公司是针对不同的“对象”使用不同的命名规范,比如变量名、方法名、类名等,结合多种命名规范各自的优势。写代码也有很多年了,有必要对编程命名规范进行一次整理总结。 1...

2021-03-14
c进阶篇(一)——移位操作详解
c进阶篇(一)——移位操作详解前言: 嵌入式编程中,很多时候都要进行比特级的操作,移位运算可以简化一些乘除操作。这篇文章带你真正了解移位操作。 1 数据的存储 对数据进行移位操作,首先要了解数据在计算机中是如何存储的。计算机关于数据涉及到原码、反码、补码三种。 1.1 原码 原码是对数字的二进制表示方法。有符号数的原码最高位是符号位,其余为数值域;无符号数则只有数值域,没有符号位。符号位用0表示非负数(0和正数),1表示复数。 由于无符号数没有符号位,因此数据域比有符号数多一位,不能表示负数但能表示更多的非负数。 表示的数值范围是偶数(2^N),比如int8_t能表示256个数,int16_t能表示65536个数等。由于实际运用中不需要-0,便人为规定将-0当做值最小的负数处理,因此int8_t表示的数值范围为-128127,int16_t表示的数值范围为-3276832767。 int8_t 原码 0 0000 0000b 5 0000...
评论
ValineGitalk