怎么结束计时函数c语言 c语言实现计时( 二 )


5. QueryPerformanceCounter()、QueryPerformanceFrequency()
头文件:windows.h
函数原型:BOOLQueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);
BOOLQueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
功能:前者获得的是CPU从开机以来执行的时钟周期数 。后者用于获得你的机器一秒钟执行多少次,就是你的时钟周期 。
补充:LARGE_INTEGER既可以是一个8字节长的整型数,也可以是两个4字节长的整型数的联合结构,其具体用法根据编译器是否支持64位而定:
在进行定时之前,先调用QueryPerformanceFrequency()函数获得机器内部定时器的时钟频率 , 然后在需要严格定时的事件发生之前和发生之后分别调用QueryPerformanceCounter()函数,利用两次获得的计数之差及时钟频率,计算出事件经历的精确时间 。
说明:这种方法的定时误差不超过1微秒 , 精度与CPU等机器配置有关,一般认为精度为透微秒级 。在Windows平台下进行高精度计时的时候可以考虑这种方法 。
6. gettimeofday()
Linux C函数 。
头文件:sys/time.h
函数原型:int gettimeofday(struct timeval *tv,struct timezone *tz);
说明:其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可) 。
timeval的定义为:
struct timeval {
long tv_sec; // 秒数
long tv_usec; //微秒数
}
可见该函数可用于在linux中获得微秒精度的时间 。
说明:使用这种方式计时,精度可达微秒 。经验证,在arm+linux的环境下此函数仍可使用 。
关于怎么结束计时函数c语言和c语言实现计时的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读