请问C语言中clock()函数该怎么用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问C语言中clock()函数该怎么用?相关的知识,希望对你有一定的参考价值。
参考技术Aclock()是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<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;
#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()函数该怎么用?的主要内容,如果未能解决你的问题,请参考以下文章