欢迎来到天天文库
浏览记录
ID:50313505
大小:333.90 KB
页数:30页
时间:2020-03-12
《代码审查案例.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、代码审查技术C/C++代码审查C/C++语言编码规范C/C++常见代码问题检测不懂开发怎么做代码审查?静态分析是指在不执行的情况下对代码进行评估的过程。包括:-类型检查-风格检查-程序理解-BUG查找-安全审查循环语句的效率for(row=0;row<100;row++){for(col=0;col<5;col++){sum=sum+a[row][col];}}在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数:for(col=0;col<5;col++){f
2、or(row=0;row<100;row++){sum=sum+a[row][col];}}指针的使用_UC*puc_card_config_tab;......Get_Config_Table(AMP_CPM_CARD_CONFIG_TABLE,&ul_card_config_num,&puc_card_config_tab,use_which_data_area);......b_middle_data_ok=generate_trans_middle_data_from_original_data(puc_
3、card_config_tab,Ul_card_config_num).......'switch'StatementShouldIncludeaDefaultCase1.switch(formatType)2.{3.case1:4.formatStr="yyyyMMddHHmmss";5.break;6.case2:7.formatStr="yyyy'-'MM'-'ddHH:mm:ss";8.break;9.case3:10.formatStr="yyyy.MM.ddHH:mm:ss";11
4、.break;12.case4:13.formatStr="yyyy'年'MM'月'ddHH:mm:ss";14.break;15.}根据编码规范,每个switch流程控制语句都必须带一个default分支,以保证逻辑分支的完整性。如果没有第15~16行的default代码,代码审查将给出警告。1.switch(formatType)2.{3.case1:4.formatStr="yyyyMMddHHmmss";5.break;6.case2:7.formatStr="yyyy'-'MM'-'
5、ddHH:mm:ss";8.break;9.case3:10.formatStr="yyyy.MM.ddHH:mm:ss";11.break;12.case4:13.formatStr="yyyy'年'MM'月'ddHH:mm:ss";14.break;15.default:16.formatStr="yyyy'-'MM'-'ddHH:mm:ss";17.}ComplexAssignment1.inti=0;2.intj=0;3.intk=0;4.intl=0;5.i*=++j;6.7
6、.k=j=10;8.9.l=j+=15;10.11.i=j+++20;12.13.i=(j=25)+30;14.15.i=j+++20;16.17.i=(j=25)+30;往往有些程序员热衷于将Java的语法发挥到极致,以资其对Java语法精通的凭据。如果是为了练习语法、理解语法,无可厚非。但如果在需要充分协作沟通的软件项目中,简洁明了,清晰易懂将会受到推崇,晦涩难懂的语句将会受到奚落。故此,大部分的软件公司的规范都对语句的精简明了提出了要求。1.int[]arr=newint[size];2.
7、if(arr==null)3.{4.returnnull;5.}流程控制中存在不可到达的语句:死代码有些流程控制由于测试条件恒为false,则流程中的程序无法到达。1.int[]arr=newint[size];2.if(arr==null)//由于arr不为空,则该测试逻辑不可能通过,程序无法进入该程序块中3.{4.returnnull;5.}添加()清晰化复杂的表达式写复杂的表达式时不应过度依赖运算操作符的计算优先顺序,而应养成使用“()”的好习惯,当一个逻辑表达式由多个逻辑运算组成时,应该用“()”
8、划分不同的部分。1.booleana,b,c;2....3.if(a
9、
10、b&&c)//应该替换成if((a
11、
12、b)&&c)4.{5....6.}CodingStyle:-MultipleStatementsonOneLine-PlaceStatementinBlock-Use'L'insteadof'l'attheEndofIntegerConstants1.
此文档下载收益归作者所有