相关
- 头文件
time.h - 函数
clock_t __cdecl1 clock(void)
返回处理器调用某个进程或函数所经过的硬件滴答数(clock_t)。 - 常量
CLK_TCK2(Clock tick硬件(时钟)滴答) - 数据类型
typedef long clock_t
实现
思路
///
clock ( ) 的返回值为:自程序开始运行至此函数被调用时所经过的硬件滴答数。
分别取代码前后的clock tick数并作差,即为代码运行所经历的clock tick,再通过常量CLK_TCK便可得到代码运行时间。
应用
算法效率比较
以一个简单的交换数据为例:
#include <stdio.h>
#include <time.h>
int main(){
clock_ start;
int a,b,i;
start = clock();//开始时间
for (i = 0; i < 1000000; i++){//程序运行一次的时间很可能小于一个硬件滴答的时间,所以要循环多次。
//————————————————————算法区域——————————————————————
a = a + b;
b = a - b;
a = a - b;
//————————————————————算法区域——————————————————————
}
printf("%lf
",(double)(clock() - start) / CLK_TCK);//结束时间 - 开始时间
return 0;
}
我们还可以通过以下方法输出其运行一次所用时间:
printf("%e
",(double)(clock() - start) / CLK_TCK / 1000000);