更新时间:2015-06-26 18:34:20浏览次数:1+次
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
此数据类型定义比较简单,就是一个typedef类型重定义而已。clock_t定义为long类型,而不是64位类型,是与使用的环境有关的。此数据类型是用来记录处理器即CPU运行的时间周期数。获取处理器运行的时间周期数的函数是clock。
clock函数的声明如下:
函数没有任何参数,只有一个返回值。返回值就是clock_t 类型。返回的时间值是:开启这个程序进程”到“程序中调用clock()函数”时之间的时间,以时钟周期个数为单位,即clock_t的取值类型。宏CLOCKS_PER_SEC是一个常量,表示一秒钟有多少个时钟周期。如果时间周期数无法确定,函数内部会返回-1,然后转换成clock_t的类型返回给调用者。使用clock计时只能得到时钟周期数,要转换成秒数,可以使用时钟周期数除以CLOCKS_PER_SEC来得到,结果非常接近。clock_t clock( void );
clock函数使用示例:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void sleep( clock_t wait );
void main( void )
{
long i = 600000L;
clock_t start, finish;
double duration;
/ * - 延迟指定的时间 - * /
printf( "延迟三秒\n" );
sleep( (clock_t)3 * CLOCKS_PER_SEC );
printf( "完成!\n" );
/ * - 测量时间 - * /
printf( "空循环个数:%ld ", i );
start = clock();
while( i-- ) ;
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "耗时:%2.1f 秒\n", duration );
}
/ * - 睡眠指定的时间,以毫秒为单位 - * /
void sleep( clock_t wait )
{
clock_t goal;
goal = wait + clock();
while( goal > clock() );
}
相关资讯