请问C语言中clock()函数该怎么用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问C语言中clock()函数该怎么用?相关的知识,希望对你有一定的参考价值。

参考技术A

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。

它的具体功能是返回处理器调用某个进程或函数所花费的时间。函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中clock_t是用来保存时间的数据类型。

在time.h文件中,我们可以找到对它的定义:

#ifndef _CLOCK_T_DEFINED  

typedef long clock_t;  

#define _CLOCK_T_DEFINED  

#endif  

clock_t其实就是long,即长整形。该函数返回值是硬件滴答数,要换算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可。

clock的返回值一直是0的原因:

1、编译器优化,for循环实际根本没执行,直接跳过去了,所以时间为0。

2、clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少,那么clock算出的时间也很少。

3、建议使用time gettimeofday函数来计时。

扩展资料:

C语言中clock()函数的程序例1:(TC下运行通过)

#include <stdio.h>

#include <time.h>

int main(void)

clock_t start, end;

start = clock();

delay(2000);

end = clock();

printf("The time was: %f\\n", (double)(end - start) / CLK_TCK);

return 0;

说明:CLK_TCK 定义在TC中的time.h中:#define CLK_TCK18.2。

在VC6.0中也有关于CLK_TCK的宏定义,不过其值不再是18.2,而是1000。

实际上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。

参考资料来源:百度百科-clock()

怎么用C++做日期相减(要求精确到分钟)

各路C++编程高手!
怎么用C++做日期相减(要求精确到分钟)

    使用clock函数获得程序开始和结束的时间,相减就能得到程序运行的时间。
    clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
    clock_t clock(void) ;
    简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型。

    例程:

    #include<iostream>
    #include<ctime>
    using namespace std;
     
    int main()

        clock_t start,finish;
        start=clock();
         
        cout << "HW .... " << endl;
     
        finish=clock();
     
        cout << finish-start   << "/" << CLOCKS_PER_SEC  << " (s) "<< endl;
         
        return 0;
参考技术A #include<iostream>
#include<ctime>

using std::cin;
using std::cout;
using std::endl;

int main()

time_t t1;
time_t t2;
time(&t1);
system("pause");
time(&t2);
cout<<"The time it takes is"<<t2-t1<<endl;

//这样就可以计算值中间语句期间耗费的时间,单位是秒,你如果需要分钟除以60就是了,如果还不明白来问我吧,我经常在线
参考技术B 用 ctime(time.h) 里的函数 difftime

原型:
double difftime ( time_t time2, time_t time1 );
返回 时间差, 单位 秒。本回答被提问者采纳

以上是关于请问C语言中clock()函数该怎么用?的主要内容,如果未能解决你的问题,请参考以下文章

请问在C语言里怎么获取当前时间和日期(精确到毫秒)?

C语言中怎样测试函数执行时间

C语言 关于时间函数

c语言中怎么设置计时器?

请问这道C语言该怎么做啊?

请问这个C语言中有参数的函数是怎么传递值的,调用的时候没有参数啊。