为了账号安全,请及时绑定邮箱和手机立即绑定

C语言时间函数time_t?

C语言时间函数time_t?

倚天杖 2019-02-13 15:11:21
#include <stdio.h>#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;}
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

电脑cpu的主频太高,一百万次空循环的执行时间太短,所以,difftime(返回时间差)的返回值非常非常小,比如他返回的是0.0002的话,实际上不是0,但是因你输出时,只保留两位小数,后面的不是0的值也没输出,所以你保留两位小数输出的话,肯定是0.00
另外,difftime的返回值是64位整数,太小的话,肯定也是零,说到底还是因为时间差太小的造成的

循环次数加大一些,现在cpu主频都是1-2g的,你设1亿次或者10亿应该才能看到差距
for (i = 100000000; i > 0; --i);
改成1亿次。

查看完整回答
反对 回复 2019-03-22
?
撒科打诨

TA贡献1934条经验 获得超2个赞

说到底,time_t是一个整数,单位是秒,你的运算耗时不到一秒,当然输出0了,虽然difftime的返回值是double新类型的,但它的单位也是秒,所以difftime不可能返回有小数的值,也就是说小数部分都是0

查看完整回答
反对 回复 2019-03-22
  • 3 回答
  • 0 关注
  • 728 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信