华为代码规范文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码规范文档
目录
1概述 (3)
1.1编写目的 (3)
1.2文档约定 (3)
1.3预期的读者和阅读建议 (3)
1.4参考文献 (3)
2排版要求 (4)
2.1程序块缩进 (4)
2.2程序块之间空行 (4)
2.3长语句和长表达式 (4)
2.4循环、判断等长表达式或语句 (5)
2.5短语句 (6)
2.6条件、循环语句 (6)
2.7语句对齐 (6)
2.8函数、过程和结构等语句块 (7)
2.9程序块分界符 (7)
2.10说明性文件 (8)
2.11源文件头 (8)
2.12变量、常量注释 (9)
2.13数据结构的注释 (9)
2.14全局变量 (10)
2.15其他 (10)
2.16命名规范与系统风格一致 (12)
2.17其他 (12)
3可读性 (14)
3.1运算符优先级 (14)
3.2避免直接使用数字作为标识符 (14)
4函数、过程 (16)
4.1对所调用函数的错误返回码要仔细、全面地处理。 (16)
4.2明确函数功能,精确(而不是近似)地实现函数设计。 (16)
4.3局部变量 (16)
4.4全局变量 (16)
5可测性 (17)
5.1调测开关 (17)
5.2打印信息 (17)
5.3单元测试 (17)
5.4集成测试 (17)
5.5断言使用 (18)
5.6使用宏时,不允许参数发生变化 (20)
1概述
1.1编写目的
为规范软件开发人员的代码编写提供参考依据和统一标准。
1.2文档约定
说明本文档中所用到的专用术语定义或解释,缩略词定义。
1.3预期的读者和阅读建议
本文档适用于所有软件开发人员。
1.4参考文献
列出有关的参考文件,如:
a.属于本项目的其他已发表文件;
b.本文件中各处引用的文档资料。
列出这些文件的标题、作者,说明能够得到这些文件资料的来源。
2排版要求
2.1程序块缩进
程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
2.2程序块之间空行
相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if (!valid_ni(ni))
{
... epssn_index;
repssn_ni = ssn_data[index].ni;
应如下书写
if (!valid_ni(ni))
{
... epssn_index;
repssn_ni = ssn_data[index].ni;
2.3长语句和长表达式
较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:
= NO7_TO_STAT_PERM_COUNT_LEN
+ STAT_SIZE_PER_FRAM * sizeof( _UL );
act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied
= stat_poi[index].occupied;
act_task_table[taskno].duration_true_or_false
= SYS_get_sccp_statistic_state( stat_item );
report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)
&& (n7stat_stat_item_valid (stat_item))
&& (act_task_table[taskno].result_data != 0));
2.4循环、判断等长表达式或语句
循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
示例:
if ((taskno < max_act_task_number)
&& (n7stat_stat_item_valid (stat_item)))
{
... ord_length)
&& (j < ; i++, j++)
{
... . tat_object),
sizeof (_STAT_OBJECT));
n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER
+ index, stat_object );
2.5短语句
不允许把多个短语句写在一行中,即一行只写一条语句。
示例:如下例子不符合规范。
= 0; = 0;
应如下书写
= 0;
= 0;
2.6条件、循环语句
if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。
示例:如下例子不符合规范。
if (pUserCR == NULL) return;
应如下书写:
if (pUserCR == NULL)
{
return;
}
2.7语句对齐
对齐只使用空格键,不使用TAB键。
说明:以免用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐,不要使用BC作为编辑器合版本,因为BC会自动将8个空格变为一个TAB键,因此使用BC合入的版本大多会将缩进变乱。