CLOCKS_PER_SEC的例子

2025-04-05 05:41:34
推荐回答(1个)
回答1:

这是一个求时间差的程序,那么为什么要除以CLOCKS_PER_SEC呢?  这是因为clock()是以毫秒为单位,要正确输出时间差需要把它换成秒,因此需要除以CLOCKS_PER_SEC。  clock()函数计算出来的是硬件滴答的数目,不是毫秒。在TC2.0中硬件每18.2个滴答是一秒,在VC++6.0中硬件每1000个滴答是一秒。
上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒,那么我们可不可以通过改变CLOCKS_PER_SEC的定义,通过把它定义的大一些,从而使计时精度更高呢?通过尝试,你会发现这样是不行的。在标准C/C++中,最小的计时单位是一毫秒。
下面是一个更为简单的例子:
#include
#include
int main()
{
int n = 10000000;
while(n--);
printf(%f\n,clock()/(double)CLOCKS_PER_SEC);
return 0;
}
在VC++6.0中可以用CLK_TCK替换CLOCKS_PER_SEC。