如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
嵌入式C\C++程序设计大连理工大学软件学院嵌入式教研室赖晓晨软件开发编码规范广州HW有限公司质量管理体系文件引言为了提高源程序的质量和可维护性,最终提高公司软件产品生产力,我们有必要对公司软件产品的源程序的编写风格作出统一的规范约束。本文档的读者是系统分析设计人员和C\C++程序代码编制人员、测试人员。总则本规范总则的内容包括:排版程序效率注释质量保证标识符命名代码编译变量使用单元测试代码可测性程序版本与维护术语:术语描述:规则:编程时强制必须遵守的原则。建议:编程时必须加以考虑的原则。说明:对此规则或建议进行必要的解释。示例:对此规则或建议从正、反两个方面给出例子。1。排版1-1:程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。1。排版(续)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。排版(续)1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。1。排版(续)示例: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)&&(n7stat_stat_item_valid(stat_item))&&(act_task_table[taskno].result_data!=0));1。排版(续)1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。1。排版(续)示例: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。排版(续)1-5:若函数或过程中的参数较长,则要进行适当的划分。示例:n7stat_str_compare((BYTE*)&stat_object,(BYTE*)&(act_task_table[taskno].stat_object),sizeof(_STAT_OBJECT));1。排版(续)1-6:不允许把多个短语句写在一行中,即一行只写一条语句。示例:如下例子不符合规范。rect.length=0;rect.width=0;应如下书写:rect.length=0;rect.width=0;1。排版(续)1-7:if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。示例:如下例子不符合规范。if(pUserCR==NULL)return;应如下书写: