gpt4 book ai didi

c - gettimeofday 的时间未按应有的方式更新

转载 作者:行者123 更新时间:2023-12-04 00:46:08 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <sys/time.h>

int main()
{
float time;
struct timeval tv;
gettimeofday( &tv, NULL );
time = tv.tv_sec + ( tv.tv_usec / 1000000.0 );
printf( "time: %f\n", time );
return 0;
}

反复运行这段代码生成的二进制文件,我往往会得到相同的时间值:

$ ./a.out
time: 1348059520.000000
$ ./a.out
time: 1348059520.000000
$ ./a.out
time: 1348059520.000000

这种情况一直持续到几秒钟后我得到更新的时间值。

最佳答案

float 似乎太小,无法包含 tv.tv_sec + ( tv.tv_usec/1000000.0 ) 的结果。使用 double 代替:

#include <stdio.h>
#include <sys/time.h>

int main()
{
double time;
struct timeval tv;
gettimeofday( &tv, NULL );
time = tv.tv_sec + ( tv.tv_usec / 1000000.0 );
printf( "time: %f\n", time );
return 0;
}

关于c - gettimeofday 的时间未按应有的方式更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12495337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com