国际访客建议访问 Primers 编程伙伴 国际版站点 > C 教程 > clock 以获得更好的体验。

# C 语言标准库函数 clock

在头文件 time.h 中定义。
/*********************************************
 * @brief 获取程序经过的处理器时间
 * @return 程序经过的处理器时间
 ********************************************/
clock_t clock(void);

!subtitle:说明

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

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

开始时刻由实现定义,因此返回值本身无意义(但通常被近似当作程序启动后经过的处理器时间),只有两次返回值之差才有意义。

CLOCKS_PER_SEC 是处理器的每秒时钟数,在 POSIX 上定义为 1000000 而非实际的时钟数。

!subtitle:参数

!subtitle:返回值

  • 成功时返回程序经过的处理器时间

  • 失败时返回 (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-11-27 09:38:07 创建于: 2025-11-27 09:38:07