#C 语言标准库函数 clock
/*********************************************
* @brief 获取程序经过的处理器时间
* @return 程序经过的处理器时间
********************************************/
clock_t clock(void);
说明
获取程序从某一时刻开始大致经过的处理器时间。
将返回值除以 CLOCKS_PER_SEC
可以换算为秒。
开始时刻由实现定义,因此返回值本身无意义(但通常被近似当作程序启动后经过的处理器时间),只有两次返回值之差才有意义。
CLOCKS_PER_SEC
是处理器的每秒时钟数,在 POSIX 上定义为 1000000 而非实际的时钟数。
参数
无
返回值
- 成功时返回程序经过的处理器时间
- 失败时返回
(clock_t)(-1)
#示例
#include <stdio.h>
#include <limits.h>
#include <time.h>
int main(void)
{
clock_t c1 = clock();
for(int i = 0; i < INT_MAX; i++);
clock_t c2 = clock();
int diff = (int)(c2 - c1);
printf("for 循环消耗了 %d 个处理器时钟,约合 %f 秒\n", diff, (double)diff / CLOCKS_PER_SEC);
return 0;
}
运行结果:
for 循环消耗了 4012699 个处理器时钟,约合 4.012699 秒
#推荐阅读
#参考标准
- C17 standard (ISO/IEC 9899:2018):
- 7.27.2.1 The clock function (p: 285)
- C11 standard (ISO/IEC 9899:2011):
- 7.27.2.1 The clock function (p: 389)
- C99 standard (ISO/IEC 9899:1999):
- 7.23.2.1 The clock function (p: 339)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.12.2.1 The clock function