一、命名规范
1、命名规范
为了使变量能够更好被阅读代码的其他开发人员理解,需要使用前缀
--比如:
bool bFlag;
int iCount;
char szName[NAME_LEN];
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、为了使层次清晰,在闭合的右花括号后注释该闭合所对应的起点。