程序优化之条件判断问题
程序员文章站
2022-03-25 17:27:31
...
在写代码想到一个问题,如果在循环条件判断是否成立时,如果该数是一个常数,如10000,就直接判断就可以了。
如果他是一个表达式的值呢,如n/2之类,要不要每次判断都计算一次呢。这样的话,把n/2在循环开始之前就计算出来,
会不会加快计算的速度呢。我们可以利用库<time.h>的clock()函数计算程序运行的时间来判断这个问题。不过记得除以
CLOCKS_PER_SEC这样得到以秒为单位而且它和操作系统相关。
计算出n的值
#include<stdio.h>
#include<time.h>
int main()
{
long i;
long n;
n = 10000000000/2;
for(i=0;i<n;i++)
n = n+0+0;
printf("end\n");
printf("%.2f\n",(double)clock()/CLOCKS_PER_SEC);
return 0;
}
所需时间vc6+和dev的时间是
不计算n的值,直接放进循环里面的
没错,你没有看错,反而更快了。这是为什么呢?