【发布时间】:2013-02-07 17:23:53
【问题描述】:
要找出time_t 的有效值范围似乎非常困难。
它在一些 32 位平台上,在大多数 64 位平台上,因此可以很容易地设置为 LONG_MAX。但是,尝试使用该值并不能真正正常工作。例如,您不能将其传递给 localtime 并将其更改为 struct tm。
一个二进制搜索的快速测试程序告诉我它是 67768036191676799。这对应于 2147483647 年末,因此作为一个值是有意义的。但是,这是在任何地方指定的吗?对于最大可用 time_t,是否有任何合理的、独立于平台的值?
【问题讨论】:
-
我不相信它是重复的。现有问题都没有引用我关于 time_t 最大可用值的问题?
-
我们不是正在向 64 位过渡吗?
-
请记住,即使 time_t 的数值最大,在某些实现中,一些(通常很大的)time_t 也会通过标准函数产生完全乱码,例如本地时间()