我有2个time_t
值,我想找出哪一个更大。
time_t
是内部的__int64
在我的平台上。我可以用吗<
, >
and ==
运算符来比较值?
我不想知道两个时间值之间的差异。
代码只会在 Windows 上运行,所以我不关心可移植性。
以这种方式比较值是否正确?
根据节7.27.1(3)C 标准(在本例中指的是 C++ 标准)time_t
is a 真实类型,其定义在6.2.5(17)作为整数或浮点类型。
只要您不明确假设整数(即通过执行time_t t; int x = t;
)这可能会失去精度,你是安全的。
EDIT:
我收回那句话。如果你去这个链接,帖子 #6,您可以阅读以下内容:
仅仅因为 time_t 是算术,并不意味着它存储时间
作为推进时间的单调递增值。事实上,我们的标准
对于晚于 t1 的 t2,C 库不保证 t1
P·J·普劳格
丁库姆制品有限公司
http://www.dinkumware.com
由于 Dinkumware 在 Windows 系统上广泛使用(尽管我不知道这是否也适用于 C++ 标准库),我认为这是相关的。
tl;dr: Use std::difftime
正如其他答案中所建议的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)