C语言时间差计算函数clock() 与 time ()用法分析

来源:互联网 发布:复杂网络系统与动力学 编辑:程序博客网 时间:2024/05/19 00:17

在很多情况下,为了评判某个算法,函数的优劣,特别是比较同一个功能的两个函数的效率高低时,我们经常通过计算耗费时间作为判断标准。C语言中有两个相关的函数用来计算时间差,分别是:

time_t time( time_t *t)   与 clock_t clock(void)

头文件: time.h

计算的时间单位分别为: s   , ms 

time_t 和 clock_t 是函数库time.h 中定义的用来保存时间的数据结构。

返回值:1、time  : 返回从公元1970年1月1号的UTC时间从0时0分0秒算起到现在所经过的秒数。如果参数 t 非空指针的话,返回的时间会保存在 t 所指向的内存。

2、clock:返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。     1单元 = 1 ms。

所以我们可以根据具体情况需求,判断采用哪一个函数。

具体用法如下例子:

#include <time.h>#include <stdio.h>#include <stdlib.h>int main(){time_t c_start, t_start, c_end, t_end;c_start = clock();    //!< 单位为mst_start = time(NULL);  //!< 单位为ssystem("pause");c_end   = clock();t_end= time(NULL);//!<difftime(time_t, time_t)返回两个time_t变量间的时间间隔,即时间差printf("The pause used %f ms by clock()\n",difftime(c_end,c_start)); printf("The pause used %f s by time()\n",difftime(t_end,t_start));system("pause");return 0;}


因此,要计算某一函数块的占用时间时,只需要在执行该函数块之前和执行完该函数块之后调用同一个时间计算函数。再调用函数difftime()计算两者的差,即可得到耗费时间。

1 0
原创粉丝点击