先看gettimeofday的语法定义:
使用前先包含头文件#include<sys/time.h>
第一个参数:是个timeval *类型的结构体,该结构体如下
timeval.tv_sec 就是秒呗
timeval.tv_usec 就是微秒
一般我们使用gettimeofday是用来获得某段代码运行的时间,所以第二个参数一般设置为NULL
图放上来感兴趣自己看
返回值
成功返回0,失败返回-1并记录在errno中
使用方法:其实就是记录两个时间点,然后求差值,一个是秒的差值,一个是微秒的差值
#include<stdio.h>
#include<sys/time.h>
void main()
{
struct timeval starttime,endtime;//定义起始变量
long int i = 1,sum = 0;
float timeuse;
gettimeofday(&starttime,NULL);//开始
for(i; i <= 10000; i++)
{
sum = sum + i;
}
gettimeofday(&endtime,NULL);//结束
printf("sum = %ld\n",sum);
timeuse = 1000000*(endtime.tv_sec - starttime.tv_sec) + \
(endtime.tv_usec - starttime.tv_usec);
timeuse /= 1000000;
printf("timeuse = %f\n",timeuse);
}
结果如下,循环到100看不出来时间,所以加到10000
烦死了多大的图上都得贴个水印,有没有能去除水印的办法,支个招