如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
目目目录录录1排版62注释113标识符命名184可读性205变量、结构226函数、过程287可测性368程序效率409质量保证4410代码编辑、编译、审查5011代码测试、维护5212宏53软件编程规范总则1排版1排版¹1-1:::程序块要采用缩进风格编写:程序块要采用缩进风格编写,,,缩进的空格数为,缩进的空格数为4个个个。个。。。说明:对于由开发工具自动生成的代码可以有不一致。¹1-2:::相对独立的程序块之间:相对独立的程序块之间、、、变量说明之后必须加空行、变量说明之后必须加空行。。。示例:如下例子不符合规范。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;¹1-3:::较长的语句:较长的语句(((>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=((taskno<MAX_ACT_TASK_NUMBER)仅供内部使用2软件编程规范总则1排版&&(n7stat_stat_item_valid(stat_item))&&(act_task_table[taskno].result_data!=0));仅供内部使用3软件编程规范总则1排版¹1-4:::循环:循环、、、判断等语句中若有较长的表达式或语句、判断等语句中若有较长的表达式或语句,,,则要进行适应的划分,则要进行适应的划分,,,长表达式要在低,长表达式要在低优先级操作符处划分新行,,,操作符放在新行之首,操作符放在新行之首。。。示例:if((taskno<max_act_task_number)&&(n7stat_stat_item_valid(stat_item))){...//programcode}for(i=0,j=0;(i<BufferKeyword[word_index].word_length)&&(j<NewKeyword.word_length);i++,j++){...//programcode}for(i=0,j=0;(i<first_word_length)&&(j<second_word_length);i++,j++){...//programcode}¹1-5:::若函数或过程中的参数较长:若函数或过程中的参数较长,,,则要进行适当的划分,则要进行适当的划分。。。示例: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);¹1-6:::不允许把多个短语句写在一行中:不允许把多个短语句写在一行中,,,即一行只写一条语句,即一行只写一条语句。。。示例:如下例子不符合规范。rect.length=0;rect.width=0;应如下书写仅供内部使用4软件编程规范总则1排版rect.length=0;rect.width=0;¹1-7:::if、、