- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - clock() 函数
C 库的 clock() 函数返回程序启动以来经过的时钟滴答数。要获取 CPU 使用的秒数,我们需要除以 CLOCKS_PER_SEC。在 CLOCKS_PER_SEC 等于 1000000 的 32 位系统上,此函数大约每 72 分钟返回相同的值。
CLOCKS_PER_SEC 是一种用于构建时间程序的宏。
语法
以下是 C 库 clock() 函数的语法:
clock_t clock(void)
参数
- 此函数不接受任何参数。
返回值
此函数返回程序启动以来经过的时钟滴答数。如果失败,则返回 -1。
示例 1
以下是一个基本的 C 库程序,用于演示 clock() 函数。
#include <time.h>
#include <stdio.h>
int main () {
clock_t start_t, end_t;
double total_t;
int i;
start_t = clock();
printf("Starting of the program, start_t = %ld\n", start_t);
printf("Going to scan a big loop, start_t = %ld\n", start_t);
for(i=0; i< 10000000; i++) {
}
end_t = clock();
printf("End of the big loop, end_t = %ld\n", end_t);
total_t = (double)(end_t - start_t) / CLOCKS_PER_SEC;
printf("Total time taken by CPU: %f\n", total_t );
printf("Exiting of the program...\n");
return(0);
}
以上代码产生以下结果:
Starting of the program, start_t = 1194 Going to scan a big loop, start_t = 1194 End of the big loop, end_t = 26796 Total time taken by CPU: 0.025602 Exiting of the program...
示例 2
在本例中,我们使用 clock() 函数演示了各种操作的处理器时间(以秒为单位)的测量。
#include <stdio.h>
#include <time.h>
#include <math.h>
int main() {
float a;
clock_t time_req;
// Measure time for multiplication
time_req = clock();
for (int i = 0; i < 200000; i++) {
a = log(i * i * i * i);
}
time_req = clock() - time_req;
printf("Processor time taken for multiplication: %f seconds\n", (float)time_req / CLOCKS_PER_SEC);
// Measure time using pow function
time_req = clock();
for (int i = 0; i < 200000; i++) {
a = log(pow(i, 4));
}
time_req = clock() - time_req;
printf("Processor time taken in pow function: %f seconds\n", (float)time_req / CLOCKS_PER_SEC);
return 0;
}
输出
执行以上代码后,我们得到以下结果:
Processor time taken for multiplication: 0.005235 seconds Processor time taken in pow function: 0.010727 seconds
广告