【发布时间】:2015-07-04 01:47:54
【问题描述】:
由于某种原因 difftime 只返回整数。我的代码很简单。
#include <time.h>
int main()
{
time_t test = time(NULL);
while (1)
{
std::cout << difftime(time(NULL), test) << std::endl;
}
}
我的输出看起来像
0...
1...
2...
3...
difftime 不应该返回双精度数吗?
【问题讨论】:
-
我认为它返回自 1970 年 1 月 1 日以来的秒数。
-
对于 POSIX 系统上的亚秒级计时,请考虑
clock_gettime()(纳秒分辨率,现代,首选)或gettimeofday()(微秒分辨率,不太现代,严格弃用,但在 Mac OS X 上可用,其中clock_gettime()不是)。曾经也有ftime()(毫秒分辨率,古老,已弃用)——来自 POSIX 2001 (2004) 手册。