5

来自http://www.cplusplus.com/reference/ctime/time_t

时间_t

能够表示时间的基本算术类型的别名,如函数 time 返回的别名。

由于历史原因,它通常实现为一个整数值,表示自 UTC 1970 年 1 月 1 日 00:00 时起经过的秒数(即 unix 时间戳)。尽管库可以使用替代时间表示来实现这种类型。

可移植程序不应直接使用此类型的值,而应始终依赖对标准库元素的调用将它们转换为可移植类型。

有人知道 std::time_t 不表示为 unix 时间的这种实现示例吗?

4

1 回答 1

1

根据 §17.6.4.3.4/1:

对于标准 C 库中的每个类型 T,184类型 ::T 和 std::T 保留给实现,并且在定义时,::T 应与 std::T 相同。

184 ...时间_t ...

因此,time_tstd::time_t都是实现定义的类型。提示在某种程度上是正确的。

POSIX 兼容系统尝试将其实现为 unix 时间,但 POSIX 不基于 C++ 标准,反之亦然。也许将来会在特定的嵌入式系统中创建一个具有不同time_t...

于 2013-11-10T16:50:57.787 回答