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++中,最小的计时单位是一毫秒。

目录
相关文章
|
25天前
|
存储 算法 搜索推荐
【C++】类的默认成员函数
【C++】类的默认成员函数
|
10天前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
10 1
|
18天前
|
C++
c++常见函数及技巧
C++编程中的一些常见函数和技巧,包括生成随机数的方法、制表技巧、获取数字的个位、十位、百位数的方法、字符串命名技巧、避免代码修改错误的技巧、暂停和等待用户信号的技巧、清屏命令、以及避免编译错误和逻辑错误的建议。
17 6
|
18天前
|
存储 C++
c++学习笔记05 函数
C++函数使用的详细学习笔记05,包括函数的基本格式、值传递、函数声明、以及如何在不同文件中组织函数代码的示例和技巧。
24 0
c++学习笔记05 函数
|
7天前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
18 0
|
2月前
|
C++ 运维
开发与运维函数问题之析构函数在C++类中起什么作用如何解决
开发与运维函数问题之析构函数在C++类中起什么作用如何解决
34 11
|
17天前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
29 0
|
23天前
|
Dart 编译器 API
Dart ffi 使用问题之在C++线程中无法直接调用Dart函数的问题如何解决
Dart ffi 使用问题之在C++线程中无法直接调用Dart函数的问题如何解决
|
29天前
|
JavaScript C++
【C++ visual studio】解决VS报错:error C2447: “{”: 缺少函数标题(是否是老式的形式表?)【亲测有效,无效捶我】
【C++ visual studio】解决VS报错:error C2447: “{”: 缺少函数标题(是否是老式的形式表?)【亲测有效,无效捶我】
|
2月前
|
Rust 编译器 测试技术
Rust与C++的区别及使用问题之Rust中函数参数传递的问题如何解决
Rust与C++的区别及使用问题之Rust中函数参数传递的问题如何解决