gpt4 book ai didi

c - difftime 的粒度

转载 作者:行者123 更新时间:2023-12-04 04:47:19 26 4
gpt4 key购买 nike

第 7.23.2.2 节 C99标准第2、3段:

2 The difftime function computes the difference between two calendar times: time1 -
time0
.

3 The difftime function returns the difference expressed in seconds as a double.



C99 标准似乎确实为 difftime 定义了最小粒度。功能只有一个分辨率(秒)。关于 difftime 的粒度是否有任何隐式保证?功能?

我可以推断,任何给定实现的最小可能粒度取决于该实现 time_t 的底层表示的粒度。数据类型(因为这是传递给 difftime 的内容)——但根据我对文本的理解, difftime不需要以最小粒度返回差异,实际上可以以更大的粒度返回。

最佳答案

C 标准没有做出这样的保证。 time_t具有算术类型,并且能够表示实现对日历时间的最佳近似(具有实现定义的范围和精度)。 difftime计算两个这样的差异 time_t值,并以秒为单位返回结果。这就是标准所保证的全部内容。具体来说,它没有说明 difftime 返回的值有多细化/精确。是(但可以合理地假设在同一实现中与 time_t 类型具有相同的粒度)。

POSIX 标准提供了进一步的保证,通过指定 time_t保存自纪元以来的秒数(作为整数或浮点类型) - 即。它修复了单位。同样,它并没有说明粒度。

我认为这两个标准都没有指定粒度的主要原因是这取决于硬件,并且两个标准都指定了软件的行为(可能在各种硬件上运行)。它们不控制系统时钟,因此无法对其粒度做出任何假设。

关于c - difftime 的粒度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17994457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com