开发者社区> double2li> 正文

C++ clock()函数实现功能介绍

简介: 我们今天要向大家介绍的是有关C++ clock()函数的一些基本概念以及应用方式,目的就是希望能够帮助大家轻松掌握这一应用技巧。 AD: 在C++编程语言中,有许多特定的函数应用可以帮助我们实现许多不同的特定功能,方便程序员的实际开发。
+关注继续查看

我们今天要向大家介绍的是有关C++
clock()函数的一些基本概念以及应用方式,目的就是希望能够帮助大家轻松掌握这一应用技巧。


AD:






C++编程语言中,有许多特定的函数应用可以帮助我们实现许多不同的特定功能,方便程序员的实际开发。比如C++
clock()函数主要是帮助我们实现计时的功能。而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:


  1. clock_t clock( void );

这个函数返回从“开启这个程序进程”到“程序中调用C++ clock()函数”时之间的CPU时钟计时单元(clock
tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对
它的定义:


  1. #ifndef _CLOCK_T_DEFINED
  2. typedef long clock_t;
  3. #define _CLOCK_T_DEFINED
  4. #endif

很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:


  1. #define CLOCKS_PER_SEC ((clock_t)1000)

可以看到每过千分之一秒(1毫秒),调用C++
clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:


  1. void elapsed_time()
  2. {
  3. printf("Elapsed time:%u secs."n",clock()/CLOCKS_PER_SEC);
  4. }

当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:


  1. #include “stdio.h”
  2. #include “stdlib.h”
  3. #include “time.h”
  4. int main( void )
  5. {
  6. long i = 10000000L;
  7. clock_t start, finish;
  8. double duration;
  9. /* 测量一个事件持续的时间*/
  10. printf( "Time to do %ld empty loops is ", i );
  11. start = clock();
  12. while( i-- ) ;
  13. finish = clock();
  14. duration = (double)(finish - start) / CLOCKS_PER_SEC;
  15. printf( "%f seconds"n", duration );
  16. system("pause");
  17. }

在笔者的机器上,运行结果如下:


  1. Time to do 10000000 empty loops is 0.03000 seconds

以上就是对C++
clock()函数的相关应用介绍。上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒,那么我们可不可以通过改变CLOCKS_PER_SEC的定义,通过把它定义的大一
些,从而使计时精度更高呢?通过尝试,你会发现这样是不行的。在标准C/C++中,最小的计时单位是一毫秒。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
c++课程设计具有简单功能的通讯录管理系统
c++课程设计具有简单功能的通讯录管理系统
24 0
C++自写整型一维数组功能
C++自写整型一维数组功能
27 0
C++中常用的std标准容器(全部容器功能介绍)
C++中常用的std标准容器(全部容器功能介绍)
289 0
c++用socket,进行文件传输,实现上传与下载文件功能
c++用socket,进行文件传输,实现上传与下载文件功能
971 0
【c++/c】C语言“小小计算器”扩展功能,文件的读取和写入【期末大作业】
学生成绩排序” 定义学生结构体数组,长度为10,依次输入这十个学生的学号、姓名、成绩,利用冒泡排序,对这10个学生排序,从小到大输出这10个学生的信息,然后输出10个学生的总成绩和平时成绩
115 0
【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)(下)
【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)
164 0
【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)(中)
【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)
107 0
【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)(上)
【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)
76 0
让C++控制台程序停下来,实现暂停功能
让C++控制台程序停下来,实现暂停功能
104 0
10分钟教你用C++写一个贪吃蛇附带AI功能(史上最详细最入门的贪吃蛇教程)附源代码下载
刚学完C++。一时兴起,就花几天时间手动做了个贪吃蛇,后来觉得不过瘾,于是又加入了AI功能。希望大家Enjoy It.
1114 0
+关注
double2li
一个在IT行业摸爬滚打的老司机
文章
问答
文章排行榜
最热
最新
相关电子书
更多
继承与功能组合
立即下载
对象的生命期管理
立即下载
移动与复制
立即下载