全文预览

软件代码评审检查点--C-C

上传者:徐小白 |  格式:doc  |  页数:40 |  大小:163KB

文档介绍
的数据类型?羈〖说明〗莈〖案例〗羃错误形式:肄(binasc(loop_ptr->annc_rtidx,...);荿正确形式:螆(binasc((DMUNLONG)loop_ptr->annc_rtidx,...);羆膄【检查点9】在多任务操作系统环境下是否考虑了函数的可重入性?螀〖说明〗在多任务的操作系统中,对于多任务共用的函数,如果该函数用到了全局变量或静态变量,需要注意到函数的可重入性。蒈一般来说,如果函数只使用了内部的非静态局部变量,则该函数没用可重入的问题螅膃【检查点10】当一个指针被传给一个函数,并且被调用的函数试图增加或减少这个指针所指示的内容时是否出现了常见错误?膁〖说明〗此时容易出现常见错误羆〖案例〗薄案例一芃这个例子中,尽管++和*操作符拥有相同操作优先级.但它们是按从右到左的顺序执行的.芈错误形式:蚈*numretry++;莃正确形式:莃(*numretry)++;虿案例二膆另一个常见的错误发生在当你试图调用一个函数并取其返回值,然后在一个条件判断表达式中测试这个返回值时.莆错误形式:蒃if((rtc=_ims_open(NPRD_CH)!=ESS)){肀正确形式:袇if((rtc=_ims_open(NPRD_CH))!=ESS){膅薃【检查点11】函数定义中增添了一个参数时,是否有在所有该函数调用的场合完成对应修改?蒁〖说明〗(函数被调用而参数未被充分传递的错误也因之而生).如果新的参数是加到原来所定义的参数序列的开始或中间位置时问题将更加严重.发生这种问题时,所有从这一点起前面已经存在的参数都被"错位"了.下面这个例子说明这个问题.芅〖案例〗袃函数调用传送了三个参数:蚃DBnswch_mem(&omsg,&smtimr,grwsize);薇但是函数定义了四个参数:羇?DBnswch_mem(OSPID,*omsg,*timr,grwsize);蚂

收藏

分享

举报
下载此文档