huawei代码书写规范.pdf
文本预览下载声明
目 录
1 排版
6
2 注释
11
3 标识符命名
18
4 可读性
20
5 变量、结构
22
6 函数、过程
28
7 可测性
36
8 程序效率
40
9 质量保证
44
10 代码编辑、编译、审查
50
11 代码测试、维护
52
12 宏 53
1 排版
¹11:程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
¹12:相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if(!valid_ni(ni))
{
...//programcode
}
repssn_ind=ssn_data[index].repssn_index;
repssn_ni =ssn_data[index].ni;
应如下书写
if(!valid_ni(ni))
{
...//programcode
}
repssn_ind=ssn_data[index].repssn_index;
repssn_ni =ssn_data[index].ni;
¹13:较长的语句(80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,
操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:
perm_count_msg.head.len=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=((tasknoMAX_ACT_TASK_NUMBER)
(n7stat_stat_item_valid(stat_item))
(act_task_table[taskno].result_data!=0));
¹14:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在
低优先级操作符处划分新行,操作符放在新行之首。
示例:
if((tasknomax_act_task_number)
(n7stat_stat_item_valid(stat_item)))
{
...//programcode
}
for(i=0,j=0;(iBufferKeyword[word_index].word_length)
(jNewKeyword.word_length);i++, j++)
{
...//programcode
}
for(i=0,j=0;
(ifirst_word_length)(jsecond_word_length);
i++,j++)
{
...//programcode
}
¹15:若函数或过程中的参数较长,则要进行适当的划分。
示例:
n7stat_str_compare((BYTE*)stat_object,
(BYTE *)(act_task_table[taskno].stat_object),
sizeof(_STAT_OBJECT));
n7stat_flash_act_duration(stat_item,frame_id*STAT_TASK_CHECK_NUMBER
+index,stat_object);
¹16:不允许把多个短语句写在一行中,即一行只写一条语句。
示例:如下例子不符合规范。
rect.length=0; rect.width=0;
应如下书写
rect.length=0;
rect.width
显示全部