码迷,mamicode.com
首页 > 编程语言 > 详细

C语言优化实例:循环中减少判断

时间:2014-05-13 23:01:28      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:c   优化   循环   判断   性能   

为了让编译器更好地优化循环,应该尽量让循环中减少判断,方法之一是将判断语句整合进表达式。还是这个例子:
for (int i = 0; i < 1000*10; i++)
{
     sum += data[i/1000][i%10];
}


假如我们需要加一个判断,只有非负整数才需要作求和运算:
for (int i = 0; i < 1000*10; i++)
{
     if (data[i/1000][i%10] >= 0)
          sum += data[i/1000][i%10];
}


下面将这个判断语句整合进表达式:
for (int i = 0; i < 1000*10; i++)
{
     sum += (data[i/1000][i%10] >= 0) * data[i/1000][i%10];
}


注意这种将判断语句整合进表达式的方法不一定在任何情况下奏效。如果if条件为真的可能性很大,那么可以考虑这样整合;如果这样整合让逻辑变得很复杂,当然不建议这样做,因为编写简约明了的代码是非常重要的。最好的方法就是实际测试两个版本的性能,然后选取性能更优的。

C语言优化实例:循环中减少判断,布布扣,bubuko.com

C语言优化实例:循环中减少判断

标签:c   优化   循环   判断   性能   

原文地址:http://blog.csdn.net/chfe007/article/details/25560195

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!