user249284 Asked:2021-11-30 18:19:11 +0000 UTC2021-11-30 18:19:11 +0000 UTC 2021-11-30 18:19:11 +0000 UTC 为什么 long int 用于存储时间而不是 unsigned long int? 772 如果我没记错的话,2038 问题只影响使用 32 位处理 time 的程序long int。但是他们为什么不使用它unsigned long int呢?毕竟,在使用无符号类型时,这将是 2106 的问题。 维基百科对签名类型有相应的 gif: время 2 个回答 Voted Aziz Umarov 2021-11-30T18:29:09Z2021-11-30T18:29:09Z 如果没有关于位数的问题,则需要存储在带符号的 long int 中,因为在 1970-01-01 00:00:01 UTC 之前还有日期。这也需要存储。在无符号值中,如何大致表示 1960-01-01 00:00:01 UTC。我只是认为负日期对创作者来说比 2038 年之后的日期更重要。 Best Answer Barmaley 2021-11-30T18:35:47Z2021-11-30T18:35:47Z 该功能time()在 70 年代被引入 Unix。当时只有 type signed long, typeunsigned long是由 Kernighan 和 Ritchie 在 1978 年用 C 语言引入的。
如果没有关于位数的问题,则需要存储在带符号的 long int 中,因为在 1970-01-01 00:00:01 UTC 之前还有日期。这也需要存储。在无符号值中,如何大致表示 1960-01-01 00:00:01 UTC。我只是认为负日期对创作者来说比 2038 年之后的日期更重要。
该功能
time()在 70 年代被引入 Unix。当时只有 typesigned long, typeunsigned long是由 Kernighan 和 Ritchie 在 1978 年用 C 语言引入的。