约 1542 字

约 8 分钟

#C 语言标准库函数 clock

/*********************************************
 * @brief 获取程序经过的处理器时间
 * @return 程序经过的处理器时间
 ********************************************/
clock_t clock(void);

说明

获取程序从某一时刻开始大致经过的处理器时间。

将返回值除以 CLOCKS_PER_SEC 可以换算为秒。

参数

无

返回值

  • 成功时返回程序经过的处理器时间
  • 失败时返回 (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/25

作者: PlanC

创建: 2025/10/12