在读《C专家编程》时,其中前言部分的关于时间的那个程序让我发现我还对C中的关于时间的函数不是很熟,于是决定查查资料,逐步学习下。
函数:clock()
#include <stdio.h>
#include <time.h>
#include <windows.h>
int main()
{
Sleep(1000);
printf("Up to now, this programme lasts %d ms and it's %d seconds\n",clock(),clock()/CLOCKS_PER_SEC);
/*clock(),记录程序从开始到出现这个函数之时的时钟输,除以CLOCKS_PER_SEC得到秒数*/
Sleep(1000);
printf("Up to now, this programme lasts %d ms and it's %d seconds\n",clock(),clock()/CLOCKS_PER_SEC);
}
clock()的作用是返回程序从开始运行到这个函数出现时所运行的时钟数(clock ticks),将其返回值除以宏CLOCKS_PER_SEC即得程序运行的秒数。
它的计时开始点是从主程序int main()开始的,即使它是出现在其他函数中,见下面的程序:
#include <stdio.h>
#include <time.h>
#include <windows.h>
int wait()
{
Sleep(3000);
printf("%d\n",clock());
}
int main()
{
Sleep(1000);
printf("Up to now, this programme lasts %d ms and it's %d seconds\n",clock(),clock()/CLOCKS_PER_SEC);
wait();
}
如果第7行的clock()是从wait()开始计时的话,那么应该是显示3000,但是实际运行结果是4000,表明clock()是从程序开始执行就计数的,而不是从调用它的函数开始执行才开始。
注:不同的机器上时钟数(clock ticks)可能会有细微的差异。