【发布时间】:2016-10-05 21:35:12
【问题描述】:
根据tm 结构中的cplusplus.com,tm_sec 字段在C90 中接受从0 到61 的值,在C99 及更高版本中接受从0 到60 的值。
我知道 60 可以用来表示闰秒,但是另一个(我的意思是 61)呢?他们为什么选择删除它?
是的,我将它同时标记为 C 和 C++,因为在这种情况下它与两种语言都相关。
【问题讨论】:
-
在 this answer 的 cmets 中询问和回答。
-
@πάντα ῥεῖ 你是认真的吗?
-
cplusplus.com 是错误的,或者至少已经过时了。 C90 错误地将范围指定为 [0, 61],因为 (IIRC) 有人错误地认为可能有两个连续的闰秒。 C99 将其更正为 [0, 60]。
-
对我之前评论的更正:that web page 为 C90 和 C99 提供了单独的选项卡。 C99 选项卡显示正确的范围 [0,60](但没有注释来解释它)。 (重点是 C++,但 C++ 包含了大部分 C 标准库的引用。)