CC++之时间差计算
diff函数1、clock函数
C/C++中的计时函数是clock(),⽽与其相关的数据类型是clock_t。
在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进程”到“程序中调⽤clock()函数”时之间的CPU 时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是⽤来保存时间的数据类型,在time.h⽂件中,我们可以到对它的定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明显,clock_t是⼀个长整形数。在time.h⽂件中,还定义了⼀个常量CLOCKS_PER_SEC,它⽤来表⽰⼀秒钟会有多少个时钟计时单元,其定义如下:
#define CLOCKS_PER_SEC ((clock_t)1000) 可以看到每过千分之⼀秒(1毫秒),调⽤clock()函数返回的值就加1。
在如下所⽰的代码中,并不会输出⼀个超过3s的值,⽽是CPU的计算时间。
void test_clock()
{
long    i = 60000000L;
clock_t start, finish;
double  duration;
double a;
start = clock();
printf( "Delay for 3 seconds\n" );
sleep(3);
printf( "Done!\n" );
while( i-- ) {
a = sqrt(sqrt(16.0)); a = sqrt(sqrt(16.0));
}
printf( "Done!\n" );
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "Total elapsed %lf seconds\n", duration);
}
2、time函数
C语⾔函数difftime
功能:返回两个time_t型变量之间的时间间隔,即计算两个时刻之间的时间差。
⽤法: double difftime(time_t time2, time_t time1);
头⽂件:time.h
void test_difftime()
{
time_t first, second;
first = time(NULL);
sleep(3);
second = time(NULL);
printf("The difference is: %f seconds\n",difftime(second,first));
}
在程序中对函数计算运⾏的时间差,应该⽤difftime⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。