Advertisement

嵌入式C语言编程规范

阅读量:

命名规范

变量命名

  • 命名策略应优先考虑意义,并避免使用具有误导性的名称。
    • 尽量避免使用单个字符变量名(除非是常见的循环变量如i, j)。
    • 使用小写字母作为变量名,并在多词变量名之间采用下划线分隔符(例如:sensor_value)。
    • 对于全局常量和宏定义,请采用全大写字母并用下划线分隔单词的方式命名(例如:MAX_VALUE, TIMER_INTERVAL)。
    • 在进行结构体类型声明时,请在结构体名称后附加"_Struct"后缀(例如 Da**te.Structure)。
    • 枚举类型名称应当以大写字母开头(例如:ColorType)。
    • 所有枚举值都应采用全大写字母并用下划线分隔符连接的方式表示(例如COLOR_RED, COLOR_BLUE)。
    • 所有内部变量都应该附加static关键字以明确其属性(例如static int i = 0;)。

函数命名

  • 函数名需明确指示其实现的功能或执行操作。
  • 必须遵循{分层}-模块-功能格式来命名为函数。
  • 对于返回布尔值的函数而言,默认采用问题式或断言式命名法更为合适。
  • 获取属性或变量值的操作通常以Get开头命名。
  • 设置属性或变量值的操作通常以Set开头命名。
  • 建议所有函数保持简洁明了,并专注于单一职责以提高可读性和维护性。
  • 内部辅助类中的所有静态方法均需标注static关键字。

文件命名

  • 遵循{分层}_{模块}的命名规范来设置文件名,在此详细说明:{分层}用于标识层级结构,请参考分层定义文档;而{模块}则应首字母大写,并对特殊术语实施全称大写处理。
    • 在项目规模较大时,请将头文件与源文件分别存放以避免潜在问题。

代码分层规范

工具函数和常规宏定义

所有特定算法、工具函数和常规宏定义。

目录:Com/

前缀:Com_

驱动层

所有与芯片直接进行数据交换的底层硬件代码包括GPIO端口控制模块、串口通信模块或模数转换模块的驱动程序以及定时计数器等相关的定时功能实现代码

目录:Dri/

前缀:Dri_

​​​​​​​接口层

位于顶层之上采用标准接口(包括GPIO、UART、IIC、SPI等)配置的外部硬件代码模块。若无外设配置,则无需配置外设

目录:Int/

前缀:Int_

​​​​​​​中间层

提供更为先进的服务内容,并包含操作系统、文件系统、通信协议栈等细节说明。该层次通常被应用于那些复杂的单片机系统设计中,请特别关注RTOS等项目的应用情况。对于较为简单的项目来说,则无需采用这一层次的技术方案。

目录:Mid/

前缀:Mid_

​​​​​​​应用层

负责处理应用程序的主要逻辑。该组件仅与中间件层或接口层进行交互,并尽量避免直接访问驱动层。

目录:App/

前缀:App_

样例:

全部评论 (0)

还没有任何评论哟~