您的位置:首页 > 编程语言

嵌入式软件编程规范

2015-12-31 11:36 323 查看
一、命名规范

1、命名规范

为了使变量能够更好被阅读代码的其他开发人员理解,需要使用前缀

•a(数组)、b(布尔值)、i(4字节整型)、u(无符号整型数)、p(指针)、s(字符串)、sz(以NULL结尾的字符串)
--比如:

bool bFlag;

int iCount;

char szName[NAME_LEN];

•i,j,k,m,n,x,y,z 单字母变量可是使用在循环控制和索引处,不可滥用
•局部静态变量在符合其他规则的基础上,必须加前缀s_,如s_bFlag。
•全局变量在符合其他规则的基础上,必须加前缀g_,如:g_bFlag
•如果一个变量既是全局变量又是静态变量,则使用g_即可,因为相对于静态类型,全局类型更需要突出
•如果是一个结构体变量,可以使用stru_或者st_,视情况而定,不能使代码看起来太长,反而不容易阅读

2、函数命名

函数名由小写字母+下划线组成,在区别不同版本时可使用数字。

多个单词使用下划线分割。

函数名需加固定前缀,前缀形式:模块_,如:日志模块 log_write_alarm_entry()。

函数名必须有明确意思,功能相反的函数使用反义词区别。

--如:cfg_param_net_set(); cfg_param_net_get()。

usr_account_add(); usr_account_del()。

接口的多个版本命名可使用数字标识,以此区别不同版本,形式 _v1。

--如:cfg_param_net_set() 旧;cfg_param_net_set_v1(); cfg_param_net_set_v2()

3、结构体命名

1. 结构体名由大写字母、数字和下划线组成,不允许使用小写字母。

2.多个单词使用下划线分割。

3. 结构体名必须加固定前缀:模块_,固定后缀: _T。

[示例]:参数管理模块,pppoe参数 typedef struct {} CFG_PPPOE_PARAM_T, * PCFG_PPPOE_PARAM_T

4、宏命名

1.宏名由大写字母、数字和下划线组成,不允许使用小写字母。

2.多个单词使用下划线分割。

3.宏名必须加固定前缀,前缀形式:模块_。

--[示例]:参数管理模块,用户名长度 #define CFG_NAME_LEN (32)

二、宏的使用

目前在代码中,宏主要有两种作用,首先是定义一个数值,另外就是条件宏,用来控制编译器进行有选择的代码编译

数值宏在嵌套定义时,要加括号

#define SIZE (10*4)

#define NUM (1024/SIZE)

上例中若SIZE 定义时不加括号,那么NUM 就替换成了1024/ 10*4,将导致NUM值出乎预料

使用条件宏的过程中,若必须使用,则应避免过多的宏影响阅读

三、注释风格

1、错误修复和解决方法代码必须使用注释。

修改代码时,总是使代码的注释保持最新, 为了防止问题反复出现,对错误修复和解决方法代码必须使用注释。

2、在每个函数的开始,应该提供标准的注释。

以指示例程的用途,注释样本应该是解释它为什么存在和可以做什么的简短介绍。

3、在变量声明时,应在行尾添加注释;全局变量必须有注释。

在这种情况下,将所有行尾注释应使用公共制表符(Tab)在一处对齐。

4、对由循环和逻辑分支组成的代码使用注释。

这些可以帮助源代码读者理解代码书写目的。

5、为了使层次清晰,在闭合的右花括号后注释该闭合所对应的起点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: