问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何添加一个按键启动倒计时程序,C语言仿真

发布网友 发布时间:2023-10-16 09:48

我来回答

1个回答

热心网友 时间:2024-12-03 20:52

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; //微秒数
}追问你说的都没有用

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
光线为什么不存在 炒菜时要等到油冒烟吗 高考数学选修没涂有分吗? 高考选修不涂有分数吗 《宫》中插曲是什么乐器演奏的? 电视剧《宫》的主题曲和片尾曲分别是什么? 爱我的人和我爱的人原唱是裘海正还是游鸿明 刑法对追诉时效的规定 刑事案件追诉期限的法律规定是什么? 爱奇艺海外版怎么下载 、一个为什么会出现2个头像? c语言中怎样在函数中调用倒计时2 给监狱里的亲人寄两二百元钱,他能收到吗?63 、一个为什么会出现2个头像? 冷冷的心静静等候你的出现,回想……是什么歌?2 在劳教所需要家里寄钱吗 冰箱漏水是怎么回事35 营业额和利润额有什么区别?128 销售额与营业额,还有销售价格。它们之间有什么区别9 梦见别人喝不干净的血的预兆 得了痔疮,大便时流血,用了马应龙,不太见效,怎么办 鸡头米是什么?3 “春节旅游好去处”“烟台旅游团”广西桂林、阳朔5天4晚自由行_百度知 ... 踏花归来马蹄香是谁出的题? 苹果手机港行和国行和美版,到底有什么区别?4429 为什么有的股票要停牌?股票停牌目的是什么 请问iphone可以浏览的图片尺寸最大是多少? 有没有类似 浅夏一眠的末世游轮这样的末世小说,没异能没金手指,感情... 请问花火里的一篇《凤凰船》下集在哪里看? 出油率是百分之四十二要榨油一千零五十千克需要油菜籽多少千克数...6 怎么样用c语言写一个倒计时程序1 用一个手机号码注册了两个,旧的被新申请的微信替换了。请问怎么找... “状物 ”是什么意思?18 c语言中怎样在函数中调用倒计时2 状物是不是写景3 什么叫状物的作文121 如果爸爸给十四岁女儿办农村商业银行卡,填的身份证号码,姓名,手机号... 我向一个男生表白了,他说对我有感觉,却不答应在一起,这是为什么?我还有... 消防水泵和喷淋水泵在报警系统中需要安什么模块啊??信号蝶阀和...68 杭州气车北站到湖州织里要多少时间1 从杭州坐什么车子可以去织里镇2 为什么我上班时很有精神,但一回家就感觉很累呢?4 教师的面试是什么形式的?和公务员一样? 芡实是什么?35 、一个为什么会出现2个头像? 鸡头米的功效和作用?怎么食用?4 跪求各位大仙 我得痔疮已三天了非常痛 有小球出来 但不出血 ... 用了马应龙痔疮栓后,大便出血更多了,怎么办_内痔7 用了马应龙痔疮栓后,大便出血更多了,怎么办,我是残 用了马应龙痔疮膏,大便还是出血1