{
_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语句中将经常性的处理放在前面。