1518

8 分钟

#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

创建于 2025/10/12

更新于 2025/10/12