一、windows下的clock():
#include <stdio.h>
#include <time.h>
#include <windows.h>
int main()
{
printf("startTime:%ld\n",clock());
Sleep(50);//50ms
printf("endTime:%ld\n",clock());
return 0;
}
运行结果:
二、linux下的clock():
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main()
{
printf("startTime:%ld\n",clock());
usleep(50000);//50ms
printf("endTime:%ld\n",clock());
return 0;
}
运行结果:
每次运行结果都不一样,绝望(一万点暴击),希望以后能找到解决方案。
补充:已找到的解决方案
使用gettimeofday()功能和clock()一样,都是计算程序的运行时长,可自己构造定时器。
#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
struct timeval time1, time2;
int main()
{
double elapsed_time=0.0;
gettimeofday(&time1,NULL);
usleep(100000);
gettimeofday(&time2,NULL);
elapsed_time = (time2.tv_sec - time1.tv_sec) *1000+(time2.tv_usec - time1.tv_usec)/1000;
printf("Elapsed time: %lf(ms)\n",elapsed_time);
return 0;
}
运行结果:
精度还可以。。。