《编写高质量代码:改善c程序代码的125个建议》——建议20-2:尽量使循环体内工作量达到最小化

简介:

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第3章,建议20-2,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议20-2:尽量使循环体内工作量达到最小化

我们知道,for循环随着循环次数的增加,会加大对系统资源的消耗。如果你写的一个循环体内的代码相当耗费资源,或者代码行数众多(一般来说循环体内的代码不要超过20行),甚至超过一显示屏,那么这样的程序不仅可读性不高,而且还会让你的程序的运行效率大大降低。这个时候,我们通常可以通过如下两种方法进行优化。
1)重新设计这个循环,确认这些操作是否都必须放在这个循环里,并仔细考虑循环体内的语句是否可以放在循环体之外,从而使循环体内工作量最小化,提高程序的时间效率。如下面的示例代码所示:

for (i = 0; i < n; i++)
{
    tmp += i;
    sum = tmp;
}

很显然,在上面的代码中每执行一次for循环,就要执行一次“sum = tmp”语句来重新为变量sum进行赋值,这样的写法很浪费资源。因此,我们完全可以将“sum = tmp”语句放在for语句之后,如下面的示例代码所示:

for (i = 0; i < n; i++)
{
    tmp += i;
}
sum = tmp;

这样,“sum = tmp”语句只执行一次,不仅可以提高程序执行效率,而且程序也具有更高的可读性。
2)可以考虑将这些代码改写成一个子函数,在循环中只调用这个子函数即可。

相关文章