我有 2 个 time_t 类型的变量 - varEnd 和 varStart。
现在为了看看它们之间的区别
要么我可以做
varEnd - varStart;
or
difftime(varEnd, varStart);
两者都返回秒数。
请告诉我,它们有什么区别吗?或者哪个是推荐的?
该语言规定time_t
是一种能够表示时间的算术类型。它不要求它以任何特定方式表示时间。
If time_t
将时间表示为自某个时刻以来的秒数,-
运算符将正确计算两个之间的秒数差异time_t
values.
如果不是(例如,如果粒度是一毫秒,或者如果time_t
分为代表年、月、日等的组),然后-
运算符可能会产生无意义的结果。
The difftime() http://en.cppreference.com/w/c/chrono/difftime另一方面,函数“知道”如何time_t
代表时间,并使用该信息来计算以秒为单位的差异。
在大多数实现中,简单的减法和difftime()
碰巧做了同样的事情——但只是difftime()
保证能正确工作all实施。
另一个区别:difftime()
返回浮点类型的结果double
, while "-"
on time_t
值产生类型的结果time_t
。在大多数情况下,结果将隐式转换为您分配给它的任何类型,但如果time_t
恰好是无符号整数类型,较早的时间减去较晚的时间将产生一个非常大的值而不是负值。我见过的每个系统都实现了time_t
作为 32 位或 64 位有符号整数类型,但允许使用无符号类型 - 简单减法的另一个原因time_t
价值观不一定有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)