C语言时间函数time_t
#include <time.h>
#include <stdlib.h>
int main()
{
time_t start, end;
int i;
start = time(NULL);
for (i = 1000000; i > 0; --i);
end = time(NULL);
printf ("%.2f\n", difftime(end, start));
return 0;
}
为什么输出是0.00??? 展开
1、time_t // 时间类型(time.h 定义)
struct tm { // 时间结构,time.h 定义如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}
time ( &rawtime ); // 获取时间,以秒计,从1970年1月一日起算,存于rawtime
localtime ( &rawtime ); //转为当地时间,tm 时间结构
asctime() // 转为标准ASCII时间格式:
//就是直接打印tm,tm_year 从1900年计算,所以要加1900,月tm_mon,从0计算,所以要加1
2、time函数使用示例
#include <stdio.h>
#include <time.h>
int main()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "The current date/time is: %s", asctime (timeinfo) );
return 0;
}
另外,difftime的返回值是64位整数,太小的话,肯定也是零,说到底还是因为时间差太小的造成的
循环次数加大一些,现在cpu主频都是1-2g的,你设1亿次或者10亿应该才能看到差距
for (i = 100000000; i > 0; --i);
改成1亿次。