difftime和’ – ‘之间有什么区别?

我有2个类型为time_t的变量 – varEnd和varStart。 现在为了看到它们之间的区别要么我能做到

varEnd - varStart; 

要么

 difftime(varEnd, varStart); 

并且两者都返回秒数。

如果他们有任何区别,请告诉我? 或哪个是推荐的?

该语言指定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值并不一定有意义。

difftime()返回一个浮点double,只是减去它们,除非你先将它们转换为double。
来源: 这里