C中的函数clock()

问题描述

在研究位于 time.h 中的 clock() 函数时,我问自己如何制作一个简单的程序以查看它是如何工作的。运行这个程序时我很惊讶,结果显示为 0,而我预期的是 2。我哪里错了?

int main(int argc,char const *argv[]){
  int msec = 0;
  clock_t before = clock();
  sleep(2);
  clock_t difference = clock() - before;
  msec = difference * 1000 / CLOCKS_PER_SEC;
  printf("Time taken %d seconds\n",msec/1000);
}

解决方法

clock 测量程序使用的处理器时间。您的程序在休眠时不使用处理器时间。程序的其余部分使用的时间不到一毫秒。

要测量“挂钟”或“现实世界”时间,请使用 time,并使用 difftime 减去 time_t 值,time 返回的类型:

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int main(int argc,const char *argv[])
{
    time_t before = time(NULL);
    sleep(2);
    double difference = difftime(time(NULL),before);
    printf("The time taken was %g seconds.\n",difference);
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...