c语言获取纳秒时间函数 c语言获取微秒时间( 二 )


应该就是这样啦~
请问C语言中clock()函数该怎么用?clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t 。
它的具体功能是返回处理器调用某个进程或函数所花费的时间 。函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中clock_t是用来保存时间的数据类型 。
在time.h文件中,我们可以找到对它的定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其实就是long,即长整形 。该函数返回值是硬件滴答数 , 要换算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC 。比如,在VC++6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可 。
clock的返回值一直是0的原因:
1、编译器优化,for循环实际根本没执行,直接跳过去了,所以时间为0 。
2、clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少,那么clock算出的时间也很少 。
3、建议使用time gettimeofday函数来计时 。
扩展资料:
C语言中clock()函数的程序例1:(TC下运行通过)
#include stdio.h
#include time.h
int main(void)
{
clock_t start, end;
start = clock();
delay(2000);
end = clock();
printf("The time was: %f\n", (double)(end - start) / CLK_TCK);
return 0;
}
说明:CLK_TCK 定义在TC中的time.h中:#define CLK_TCK18.2 。
在VC6.0中也有关于CLK_TCK的宏定义,不过其值不再是18.2 , 而是1000 。
实际上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC 。
参考资料来源:百度百科-clock()
c语言里面gettime函数如何调用使用C语言编写程序需要获得当前精确时间(1970年1月1日到现在的时间) , 或者为执行计时,可以使用gettimeofday()函数 。
用法: void gettime(struct time *timep);
C语言函数
#include sys/time.h
int gettimeofday(struct timeval*tv, struct timezone *tz);
其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果:
struct timezone{
int tz_minuteswest;/*格林威治时间往西方的时差*/
int tz_dsttime;/*DST 时间的修正方式*/
}
timezone 参数若不使用则传入NULL即可 。
【c语言获取纳秒时间函数 c语言获取微秒时间】而结构体timeval的定义为:
struct timeval{
long int tv_sec; // 秒数
long int tv_usec; // 微秒数
}
它获得的时间精确到微秒(1e-6 s)量级 。在一段代码前后分别使用gettimeofday可以计算代码执行时间:
struct timeval tv_begin, tv_end;
gettimeofday(tv_begin, NULL);
foo();
gettimeofday(tv_end, NULL);
关于c语言获取纳秒时间函数和c语言获取微秒时间的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读