C语言中提供了许多库函数来实现计时功能,下面是一些常用的计时函数:

1、 time()

头文件:time.h

函数原型:time_t time(time_t * timer)

功能:返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到现在的时此刻所经过的秒数

用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。

用difftime函数可以计算两个time_t类型的时间的差值,可以用于计时。用difftime(t2,t1)要比t2-t1更准确,因为C标准中并没有规定time_t的单位一定是秒,而difftime会根据机器进行转换,更可靠。

说明:C标准库中的函数,可移植性最好,性能也很稳定,但精度太低,只能精确到秒,对于一般的事件计时还算够用,而对运算时间的计时就明显不够用了。

2、clock()

头文件:time.h

函数原型:clock_t clock(void);

功能:该函数返回值是硬件滴答数,要换算成秒,需要除以CLK_TCK或者 CLK_TCKCLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000。

说明:可以精确到毫秒,适合一般场合的使用。

3.、timeGetTime()

头文件:Mmsystem.h 引用库: Winmm.lib

函数原型:DWORD timeGetTime(VOID);

功能:返回系统时间,以毫秒为单位。系统时间是从系统启动到调用函数时所经过的毫秒数。注意,这个值是32位的,会在0到2^32之间循环,约49.71天。

说明:该函数的时间精度是五毫秒或更大一些,这取决于机器的性能。可用timeBeginPeriod和timeEndPeriod函数提高timeGetTime函数的精度。如果使用了,连续调用timeGetTime函数,一系列返回值的差异由timeBeginPeriod和timeEndPeriod决定。

4、GetTickCount()

头文件:windows.h

函数原型:DWORD WINAPI GetTickCount(void);

功能:返回自设备启动后的毫秒数(不含系统暂停时间)。

说明:精确到毫秒。对于一般的实时控制,使用GetTickCount()函数就可以满足精度要求。

5、QueryPerformanceCounter()、QueryPerformanceFrequency()

头文件:windows.h

函数原型:BOOLQueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);

BOOLQueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

功能:前者获得的是CPU从开机以来执行的时钟周期数。后者用于获得你的机器一秒钟执行多少次,就是你的时钟周期。

补充:LARGE_INTEGER既可以是一个8字节长的整型数,也可以是两个4字节长的整型数的联合结构, 其具体用法根据编译器是否支持64位而定:

在进行定时之前,先调用QueryPerformanceFrequency()函数获得机器内部定时器的时钟频率,然后在需要严格定时的事件发生之前和发生之后分别调用QueryPerformanceCounter()函数,利用两次获得的计数之差及时钟频率,计算出事件经历的精确时间。

说明:这种方法的定时误差不超过1微秒,精度与CPU等机器配置有关,一般认为精度为透微秒级。在Windows平台下进行高精度计时的时候可以考虑这种方法。

6、gettimeofday()

Linux C函数。

头文件:sys/time.h

函数原型:int gettimeofday(struct timeval *tv,struct timezone *tz);

说明:其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可)。

timeval的定义为:

struct timeval {

long tv_sec; // 秒数

long tv_usec; //微秒数

}

c语言怎么倒计时,如何在c语言程序中插入一个倒计时命令?相关推荐

  1. C语言:向一个有序数组中插入一个数据,并保持数组的有序性。

    C语言:向一个有序数组中插入一个数据,保持数组的有序性. #include <stdio.h> //向一个有序数组中插入一个元素,重新实现有序,并输出. int main() {//注意数 ...

  2. kotlin数据库_如何在Kotlin应用程序中使用Xodus数据库

    kotlin数据库 I want to show you how to use one of my favorite database choices for Kotlin applications. ...

  3. graphql redux_如何在Redux应用程序中使用GraphQL

    graphql redux by Howon Song 通过宋颂恩 如何在Redux应用程序中使用GraphQL (How to use GraphQL in your Redux app) Fetc ...

  4. Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行

    Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行 提问:我运行的是Ubuntu桌面,但是我希望启动后临时进入命令行.有什么简便的方法可以启动进入终端? Linux桌面自带了一 ...

  5. ai中如何插入签名_如何在PDF中插入一个或多个空白页?

    在编辑或修改PDF文档时,一般都需要新增空白页后再添加文本或图片等内容,那么如何在PDF中插入一个或多个空白页呢? 首先打开极速PDF编辑器,或打开需要编辑的PDF文档后,点击右上角"文档& ...

  6. 如何在Web应用程序中使用TWAIN驱动程序的自定义功能?

    如何在Web应用程序中使用TWAIN驱动程序的自定义功能?接下来跟着小编一起来看看如何去实现. 本文适用于以下产品: Dynamic Web TWAIN v7 以上 ImageCapture Suit ...

  7. 如何在visio2010的框图中插入公式?

    #如何在visio2010的框图中插入公式? 其实很简单,也没必要下载Mathtype 先在world中用自带的公式编辑器将公式写好,如下图 此时选中公式, 博文已经迁移到个人主页https://gu ...

  8. 微信小程序中使用圆形倒计时实例

    需求概要 小程序中使用圆形倒计时,效果图: 思路 使用2个canvas 一个是背景圆环,一个是彩色圆环. 使用setInterval 让彩色圆环逐步绘制. 解决方案 第一步先写结构 一个盒子包裹2个c ...

  9. chrome麦克风权限_如何在Chrome扩展程序中处理麦克风输入权限和语音识别

    chrome麦克风权限 by Palash Taneja 由Palash Taneja 如何在Chrome扩展程序中处理麦克风输入权限和语音识别 (How to handle mic input pe ...

最新文章

  1. Java学习提升体系结构
  2. 马化腾:我创办腾讯的这些年
  3. C#正则表达式提取HTML中IMG标签的SRC地址(转)
  4. DATAX工具同步数据从hdfs到drds性能优化
  5. Rxjs 里 subscribeToArray 工具函数的详细分析
  6. 【设计模式】单例模式 Singleton Pattern
  7. php 去掉url中的index.php,php 去掉url中的index.php
  8. linux下查看文件及目录个数
  9. php网站加广告位,HotNews Pro主题文章内容上面添加广告位
  10. 高效程序猿之(三)VS2010快捷键(转)
  11. 函数式编程 读书笔记
  12. android 动态 添加删除 控件 图片
  13. 快速使用 Javassist
  14. 计算机主机不启动的故障,电脑不能正常启动的原因及解决方法
  15. 四川为何紧急叫停某知名声乐演员计划在川23场次个人巡演活动?
  16. 考研二战,入职华为,反向调剂电子科大深圳
  17. Cloudera Manager 基本介绍(CDH版本)
  18. 泛式的extends和supper
  19. 关于中台的深度思考和中台实战
  20. Brendan Gregg ----Linux Performance Tools NEWS

热门文章

  1. c语言程序设计电大作业,电大C语言程序设计第1234次作业及答案
  2. hadoop_入门1
  3. 云主机和物理机PK图
  4. t-SNE algorithm(t-分布邻域嵌入算法)
  5. linux 多路径重启,(linux多路径连接iScsi存储重启自动连接.docx
  6. demo flink写入kafka_Flink结合Kafka实时写入Iceberg实践笔记
  7. tf.keras.layers.Dense() 示例
  8. python vars 的用法
  9. 车道检测--VPGNet: Vanishing Point Guided Network for Lane and Road Marking Detection and Recognition
  10. 【pytorch】torch.mm,torch.bmm以及torch.matmul的使用