首页 > 代码库 > C语言循环中减少判断——————【Badboy】
C语言循环中减少判断——————【Badboy】
为了让编译器更好地优化循环,应该尽量让循环中减少判断,方法之一是将判断语句整合进表达式。还是这个例子:
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条件为真的可能性很大,那么可以考虑这样整合;如果这样整合让逻辑变得很复杂,当然不建议这样做,因为编写简约明了的代码是非常重要的。最好的方法就是实际测试两个版本的性能,然后选取性能更优的。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。