c语言中difftime(end,start)函数可被end-start表达式所取代吗? 我测试了几组数,貌似是可以的。有知道的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中difftime(end,start)函数可被end-start表达式所取代吗? 我测试了几组数,貌似是可以的。有知道的相关的知识,希望对你有一定的参考价值。

如题

肯定地说,是不行的。
C语言中,difftime是C标准库中的一个函数,用来计算两个时间的间隔,参数为time_t类型,返回为double类型。time_t类型为一种算数类型,尽管实现上的time_t可以相减,但却不能对这种类型进行算数运算(貌似有些搞)。为什么呢?这是从概念上所限制的,两个time_t类型相减的行为是不定的,结果是没有意义的。(没有任何人规定两个time_t类型如何进行算数运算。)
再比如int *p1, *p2;p2与p1可以相减吗?许多时候我们都进行了相减,但是只有他们属于同一数组时才是有意义的,其他的情况下尽管没有发生什么大错误,但实际上是无意义的。
参考技术A time_t
type
<ctime>
Time type

Type capable of representing times and support arithmetical operations.

This type is returned by the time function and is used as parameter by some other functions of the <ctime> header.

It is almost universally expected to be an integral value representing the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC. This is due to historical reasons, since it corresponds to a unix timestamp, but is widely implemented in C libraries across all platforms.

指正楼上答案

请点击参考资料进行详细阅读
很多问题要从根源上查阅,而不是去听取别人的答案。
像这种标准函数的问题,查下它的帮助文档就可以了,文档才是最权威的。
文档上写的清楚,返回值是The difference in seconds (time2-time1) as a floating point double.这个函数的作用也就在于此,保证返回值为两个时间所差的秒数。
而time_t的类型It is almost universally expected to be an integral value representing the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC. 几乎但并不确保所有都是以秒为单位,这就是区别所在。用difftime具有更强的可移植性。在不是很特别的系统上,两值之差是可以取代difftime这个函数的。

参考资料:http://www.cplusplus.com/reference/clibrary/ctime/difftime/

本回答被提问者采纳

以上是关于c语言中difftime(end,start)函数可被end-start表达式所取代吗? 我测试了几组数,貌似是可以的。有知道的的主要内容,如果未能解决你的问题,请参考以下文章

C语言delay函数延时计算

谁能帮我用C语言写一个测试选择排序性能(函数的运行时间)的程序,不胜感激!

C 中经过的时间

c语言difftime返回0

求c语言大神 题目:编写查找函数search(),实现如下功能。

[C语言] va_start和va_end详解