aihot  2017-05-09 20:01:57  OpenCV |   查看评论   


_UI iStudentIndex ; 
_UC cSubject ; 
float fScore ; 
} _STUDENT_SCORE ; 

<规则19> 循环体内工作量最小化。 
应仔细考虑循环体内的语句是否可以放在循环体之外,使循环体内工作量最小,从而提高程序的时间效率。 
示例:如下代码效率不高。 
for ( i= 0 ; i< MAX_ADD_NUMBER ; i++ ) 

nSum += i; 
nBackSum = nSum ; /* 备份和 */ 


语句搉BackSum = nSum ;斖耆梢苑旁趂or语句之后,如下。 
for ( i = 0 ; i < MAX_ADD_NUMBER ; i ++ ) 

nSum += i ; 

nBackSum = nSum ; /*备份和 */ 

<规则20> 在多重循环中,应将最忙的循环放在最内层。 

<规则21> 避免循环体内含判断语句,将与循环变量无关的判断语句移到循环体外。 
目的是减少判断次数。循环体中的判断语句是否可以移到循环体外,要视程序的具体情况而言,一般情况,与循环变量无关的判断语句可以移到循环体外,而有关的则不可以。 

<规则22> 尽量用乘法或其它方法代替除法,特别是浮点运算中的除法,在时间效率要求不是特别严格时,要优先保证程序的可读性。 
说明:浮点运算除法要占用较多CPU资源。 
示例:如下表达式运算可能要占较多CPU资源。 
#define PAI 3.1416 
fRadius = fCircleLength / ( 2 * PAI ) ; 

应如下把浮点除法改为浮点乘法。 
#define PAI_RECIPROCAL ( 1 / 3.1416 ) // 编译器编译时,将生成具体浮点数 
fRadius = fCircleLength * PAI_RECIPROCAL / 2 ; 

<规则23> 用“++敚瑩--敳僮鞔鎿+=1敚瑩-=1敚岣叱绦蛩俣取_ 

<规则24> 系统输入(如用户输入)、系统输出(如信息包输出)、系统资源操作(如内存分配、文件及目录操作)、网络操作(如通信、调用等)、任务之间的操作(如通信、调用等)时必须进行错误、超时或者异常处理。 

<建议 1> 定义字符串变量的同时将其初始化为空即摂,以避免无限长字符串。 
<建议 2> 在switch语句中将经常性的处理放在前面。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自常见C/C++编码规范(5)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]