当我们需要对程序运行时间进行控制和统计时,就需要使用C语言中的时间函数。其中,clock()
和 time()
函数都可以获取程序执行的时间信息,但它们的用途略有不同。
clock()
clock()
函数返回的是程序的 CPU 时间,即程序执行消耗的总时间。
使用方法为:在程序执行前调用 clock()
函数,记录程序的开始时间,程序执行完毕后再次调用 clock()
函数,记录结束时间。两次返回值相减就可以得到程序的执行时间。
以下代码演示了 clock()
函数的使用:
#include <stdio.h>
#include <time.h>
int main() {
int sum = 0;
int i;
clock_t start, end;
start = clock(); // 记录开始时间
for (i = 1; i <= 1000000; i++) {
sum += i;
}
end = clock(); // 记录结束时间
printf("sum = %d, time used = %ldms\n", sum, (end - start) * 1000 / CLOCKS_PER_SEC);
return 0;
}
输出结果:
sum = 500000500000, time used = 2ms
以上代码中,CLOCKS_PER_SEC
是 clock()
函数提供的一个常数,表示每秒的时钟数。通过计算 start
和 end
之间的时间差,再将结果乘以1000除以常数 CLOCKS_PER_SEC
,就可以得到程序执行的总时间。在上述例子中,时间差为2个时钟周期,因此程序的运行时间为2毫秒。
time()
time()
函数用于获取当前系统时间,精度为秒。
使用方法为:调用 time(NULL)
函数,将返回值转换为时间类型 struct tm
即可。以下代码演示了 time()
函数的使用:
#include <stdio.h>
#include <time.h>
int main() {
time_t now;
// 获取当前系统时间
time(&now);
// 将时间转换为字符串格式并打印
printf("Current time: %s", ctime(&now));
return 0;
}
输出结果:
Current time: Sat Oct 9 10:46:32 2021
在以上代码中,time(&now)
函数获取当前系统时间,并将其保存在 now
变量中。然后,ctime(&now)
函数将 now
变量转换为可读的字符串形式,再将其输出到控制台。
总之,无论是 clock()
还是 time()
函数,都对程序的开发和性能优化有很大帮助。在需要统计程序执行时间或者获取当前时间的时候,这两个函数都是非常重要的工具。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中的时间函数clock()和time()你都了解吗 - Python技术站