为什么difftime()返回一个double?

Zax*_*ter 7 c posix

来自difftime()的手册页:

double difftime(time_t time1, time_t time0);

difftime()函数返回时间time1和时间之间经过的秒数time0,表示为a double.

由于"秒数"不需要浮点数,为什么这个函数会返回double

J..*_*... 5

文档在这一点上更清楚:

在 POSIX 系统上,time_t 以秒为单位,difftime 相当于算术减法,但 C 和 C++ 允许 time_t 使用小数单位。

尽管POSIX 要求time_t是整数类型,但对于非 POSIX 系统,这可能会返回小数秒。

  • 这是我的观点。POSIX 要求 `time_t` 为整数类型,这与问题相关。但你的回答实际上并没有这么说。它说“time_t”以秒为单位,但这与 POSIX 允许“time_t”为浮点类型是一致的。 (2认同)