是什么difftime之间的差异“ - ”?(what is the difference betw

2019-07-05 03:47发布

我有time_t类型的2个变量 - varEnd和varStart。 现在,为了看到他们之间的区别或者是我可以做

varEnd - varStart; 

要么

difftime(varEnd, varStart);

和两个返回的秒数。

请让我知道,如果他们有什么区别吗? 或者是推荐一个?

Answer 1:

语言指定time_t是能够表示时间的算术类型。 它不需要它来表示任何特定的方式倍。

如果time_t表示时间以来一些时刻的秒数,在-运营商将正确计算两者之间在几秒钟之差time_t值。

如果不是(比方说,如果粒度是一毫秒,或者如果的位time_t分为代表年,月,日,等基团),那么-操作员可以产生无意义的结果。

difftime()函数,而另一方面,“知道”一个怎样time_t表示时间,并使用该信息来计算秒的差别。

在大多数的实现,简单的减法和difftime()发生在做同样的事情-但只有difftime()是保证在所有实现正常工作。

另一个不同之处: difftime()返回浮点类型的结果double ,而"-"time_t值产生类型的结果time_t 。 在大多数情况下,结果会被隐式转换到任何你把它分配给类型,但如果time_t恰好是一个无符号整数类型,从一个较早的时间稍后时间的减法运算将产生一个非常大的价值,而不是负值。 每个系统我看到器具time_t为32位或64位带符号整数型,但使用一个无符号类型是允许的-一个原因在于的简单减法time_t值是没有必要的有意义。



Answer 2:

difftime()返回一个浮点双,只是减去他们不会,除非你投他们首先将翻一番。
来源: 这里



文章来源: what is the difference between difftime and '-'?
标签: c time-t