代码审查案例.ppt

代码审查案例.ppt

ID:50313505

大小:333.90 KB

页数:30页

时间:2020-03-12

代码审查案例.ppt_第1页
代码审查案例.ppt_第2页
代码审查案例.ppt_第3页
代码审查案例.ppt_第4页
代码审查案例.ppt_第5页
资源描述:

《代码审查案例.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.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。