C语言计时函数
C语言时间函数
C语⾔时间函数1、time函数头⽂件:time.h函数定义:time_t time (time_t *t)说明:返回从1970年1⽉1⽇的UTC时间从0时0分0妙算起到现在所经过的秒数。
#include<stdio.h>#include<time.h>int main(){time_t timep;long seconds = time(&timep);printf("%ld\n",seconds);printf("%ld\n",timep);return 0;}输出:13020797441302079744附:time_t ⼀路追踪发现就是从long类型经过不断的typedef ,#define定义过来的。
2、ctime函数定义:char *ctime(const time_t *timep);说明:将参数所指的time_t结构中的信息转换成真实世界的时间⽇期表⽰⽅法,然后将结果以字符串形式返回。
这个是本地时间。
#include <stdio.h>#include<time.h>int main(void) {time_t timep;time(&timep);printf("%s\n",ctime(&timep));return 0;}输出:Wed Apr 6 16:53:35 20113、gettime函数定义:struct tm *gmtime(const time_t *timep);说明:将参数timep所指的time_t结构中的信息转换成真实世界所使⽤的时间⽇期表⽰⽅法,然后将结果由结构tm返回。
此函数返回的时间⽇期未经时区转换,⽽是UTC时间。
struct tm结构的定:struct tm{int tm_sec;/*秒数*/int tm_min; /*分钟*/int tm_hour;/*⼩时*/int tm_mday;/*⽇期*/int tm_mon; /*⽉份*/int tm_year; /*从1990年算起⾄今的年数*/int tm_wday; /*星期*/int tm_yday; /*从今年1⽉1⽇算起⾄今的天数*/int tm_isdst; /*⽇光节约时间的旗标*/};#include <stdio.h>#include<time.h>int main(void) {char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};time_t timep;struct tm *p;time(&timep);p = gmtime(&timep);printf("%d/%d/%d ",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);printf("%s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);return 0;}输出:2011/4/6 Wed 8:59:04、 asctime函数定义:char *asctime(const struct tm *timeptr);说明:将参数timeptr所指的struct tm结构中的信息转换成真实时间所使⽤的时间⽇期表⽰⽅法,结果以字符串形态返回。
C语言中的延时与计时技巧
C语言中的延时与计时技巧
一、延时技巧
1.延时的定义:控制程序中当前语句的后一语句,延缓一段时间再执行。
2.C常用的两个延时函数:
(1) delay函数。
书写格式:delay(数值)。
其中,括号中的整型数值取值范围0 ~ 32767之间。
注意:这个数值与计算机主机的频率有关,因此在不同的计算机上,同样的延时数值,会得到不同的延时效果。
(2) sleep (数值)。
(睡眠函数)
书写格式:sleep (数值)。
其中数值是以秒为单位,用在动态显示中最少一秒变化一次,那会有明显的停顿感觉。
二、计时技巧
1.计时的定义:计算程序中某段程序的运行时间。
2.计时程序使用条件:
(1)使用头部文件:
#include <time.h>
(2)使用当前时间的时钟函数:
clock()
(3)使用时间一秒常数:
CLK_TCK
例如:
A.在“蛇吃蛋”的程序中,要引入计时程序,则:在进入while(1)循环前,先要取得计时开始时的那一时刻,使用变量t0表示。
即:
t0 = clock();
B.在while(1)循环的最后处,再取当前时刻,使用变量t1表示。
即:
t1=clock();
C.t1 和t0 之差即为所经历的时间,即;
t = (t1-t0 );
D.转换成秒:
sec=t/CLK_TCK;。
C语言中time函数)
C语言中time函数在学习I/O文件操作时遇到了关于时间函数的问题,在网上找了一部分资料和自己整理,希望能对有所需要的人有所帮助。
C/C++中的日期和时间头文件time.hasctime(将时间和日期以字符串格式表示)定义函数char * asctime(const struct tm * timeptr);函数说明asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。
此函数已经由时区转换成当地时间,字符串格式为:"Wed Jun 30 21:49:08 1993\n"返回值若再调用相关的时间日期函数,此字符串可能会被破坏。
此函数与ctime不同处在于传入的参数是不同的结构。
附加说明返回一字符串表示目前当地的时间日期。
ctime(将时间和日期以字符串格式表示)定义函数char *ctime(const time_t *timep);函数说明ctime ()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。
此函数已经由时区转换成当地时间,字符串格式为"Wed Jun 30 21 :49 :08 1993\n"。
若再调用相关的时间日期函数,此字符串可能会被破坏。
返回值返回一字符串表示目前当地的时间日期。
范例#i ncludemain(){time_t timep;time (&timep);printf("%s",ctime(&timep));}执行Sat Oct 28 10 : 12 : 05 2000gettimeofday(取得目前的时间)定义函数int gettimeofday ( struct timeval * tv , struct timezone * tz )函数说明gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz所指的结构中。
vc时间函数
2000-08-14 15:27:40
随着软硬件的飞速发展,计算机技术已经广泛地应用到自动化控制领域,为了实现实时控制,控制程序必须能够精确地完成定时和计时功能。VC提供了很多关于时间操作的函数,下面根据它们精度的不同,分别进行说明。
一般时控函数
VC程序员都会利用Windows的WM—TIMER消息映射来进行简单的时间控制:1.调用函数SetTimer()设置定时间隔,如SetTimer(0,200,NULL)即为设置200毫秒的时间间隔;2.在应用程序中增加定时响应函数OnTimer(),并在该函数中添加响应的处理语句,用来完成时间到时的操作。这种定时方法是非常简单的,但其定时功能如同Sleep()函数的延时功能一样,精度较低,只可以用来实现诸如位图的动态显示等对定时精度要求不高的情况,而在精度要求较高的条件下,这种方法应避免采用。
typedef union —LARGE—INTEGER
{
struct
{
DWORD LowPart; // 4字节整型数
LONG HighPart; // 4字节整型数
};
LONGLONG QuadPart;
// 8字节整型数
精度时控函数
在要求误差不大于1毫秒的情况下,可以采用GetTickCount()函数,该函数的返回值是DWORD型,表示以毫秒为单位的计算机启动后经历的时间间隔。使用下面的编程语句,可以实现50毫秒的精确定时,其误差小于1毫秒。
DWORD dwStart, dwStop;
// 起始值和终止值
dwStop = GetTickCount();
while(TRUE)
{
dwStart = dwStop;
C语言中时间的函数
C语言中时间的函数C语言中关于时间的函数C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
下面是店铺分享的C语言中关于时间的函数,一起来看一下吧。
一.概念在C/C++中,通过学习许多C/C++库,你可以有很多操作、使用时间的方法。
但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:1. 协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。
比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。
美国是UTC-5。
2. 日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。
这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。
3. 时间点。
时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。
4. 时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。
一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。
我们可以使用ANSI标准库中的time.h头文件。
这个头文件中定义的时间和日期所使用的方法,无论是在结构定义,还是命名,都具有明显的C语言风格。
下面,我将说明在C/C++中怎样使用日期的时间功能。
二. 介绍1. 计时C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。
在MSDN中,查得对clock函数定义如下:clock_t clock( void );这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。
C语言时间函数积累(一)
C语言时间函数积累(一)用法:time_t time(time_t *t)功能:此函数返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。
如果t并非空指针,此函数也会将返回值存到t指针所指的内存。
返回值:成功,返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。
程序例:#include<stdio.h>#include<time.h>void main(){int seconds= time((time_t*)NULL);printf("%d\n",seconds);}localtime用法: struct tm *localtime(const time_t *clock);功能: localtime()将参数clock所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
结构tm的定义请参考gmtime()。
此函数返回的时间日期已经转换成当地时区。
程序例:#include<time.h>main(){char*wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};time_t timep;struct tm *p;time(&timep);p=localtime(&timep); /*取得当地时间*/printf ("%d/%d/%d ", (1900+p->tm_year),(1+p->tm_mon), p->tm_mday);printf("%s %d:%d:%d\n", wday[p->tm_wday],p->tm_hour, p->tm_min, p->tm_sec);}在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct tm{int tm_sec; /* 秒–取值区间为[0,59] */int tm_min; /* 分- 取值区间为[0,59] */int tm_hour; /* 时- 取值区间为[0,23] */int tm_mday; /* 一个月中的日期- 取值区间为[1,31] */int tm_mon; /* 月份(从一月开始,0代表一月)- 取值区间为[0,11] */int tm_year; /* 年份,其值等于实际年份减去1900 */int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推*/ int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推*/int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。
c语言计算程序运行时间的函数
c语言计算程序运行时间的函数以C语言计算程序运行时间的函数为题,我们来探讨一下如何在C 语言中编写一个函数来计算程序的运行时间。
在计算机科学中,我们经常需要评估程序的性能,其中一个重要指标就是程序的运行时间。
在C语言中,我们可以使用clock()函数来计算程序的运行时间。
clock()函数返回的是程序运行的时钟周期数,我们可以通过一些操作将其转换为以秒为单位的时间。
我们需要包含<time.h>头文件,这个头文件中包含了clock()函数的定义。
然后,我们可以在程序中定义一个函数来计算程序的运行时间,下面是一个具体的例子:```c#include <stdio.h>#include <time.h>void calculate_time(){clock_t start, end;double cpu_time_used;start = clock(); // 记录开始时间// 在这里插入你的代码,待计算运行时间的代码end = clock(); // 记录结束时间cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; // 计算运行时间,单位为秒printf("程序运行时间为 %f 秒\n", cpu_time_used);}int main(){calculate_time();return 0;}```在上面的例子中,我们定义了一个名为calculate_time()的函数来计算程序的运行时间。
首先,我们声明了两个clock_t类型的变量start和end,分别用来记录程序的开始时间和结束时间。
然后,我们使用clock()函数来获取当前的时钟周期数,并将其赋值给start 变量。
接着,我们在待计算运行时间的代码前后分别调用了clock()函数,并将返回值赋值给end变量。
最后,我们使用公式((double) (end - start)) / CLOCKS_PER_SEC来计算程序的运行时间,并将结果打印输出。
C语言-2分钟倒计时代码
#include <stdio.h〉
#include <stdlib。h〉
#include <windows.h>
int main()
{
int a=1,i=59;
printf("2:00");
Sleep(1000);
system("cls”);
while (i〉9)
{
printf(”%d:%d”,a,i);
{
printf("%d:%d”,a,i);
Sleep(1000);
i=i-1;
system("cls”);
}
while(i>0)
{
printf("%d:0%d",a,i);
Sleep(1000);
i=i-1;
system(”cls");
}
printf(”0:00");
return 0;
}
c语言-2分钟倒计时代码 语言-2分钟倒计时代码 #include <stdio.h> #include <stdlib.h> #include <windows.h> int main() inta=1,i=59; printf("2:00"); sleep(1000); system("cls"); while printf("%d:%d",a,i);sleep(1000); i=i-1; system("cls"); printf("%d:0%d",a,i);sleep(1000); i=i-1; system("cls"); printf("1:00");sleep(1000); system("cls"); a=1;i=59; while printf("%d:%d",a,i);sleep(1000); i=i-1; system("cls"); printf("%d:0%d",a,i);sleep(1000); i=i-1; system("cls"); printf("0:00");return tceifp5 分享于 2019-11-29 21:33:10.0 c语言-2分钟倒计时代码 文档格式: .doc 文档页数: 3页 文档大小: 13.9k 文档热度: 文档分类: 幼儿/小学教育 -- 教育管理 文档标签: c语言-2分钟倒计时代码 系统标签: 计时 代码 语言 cls printf sleep
c语言 时间函数
c语言时间函数时间是我们生活中一个非常重要的概念,我们总是需要知道时间的流逝,以便安排我们的日常活动和计划。
在计算机编程领域,时间同样也非常重要。
C语言提供了一些函数来帮助我们获取和操作时间,这些函数被称为时间函数。
1. time()函数time()函数是C语言中最常用的时间函数之一。
它返回自1970年1月1日以来经过的秒数。
通常情况下,我们使用time()函数来获取当前的时间戳。
2. localtime()函数localtime()函数将一个时间戳转换为本地时间。
它接受time()函数返回的时间戳作为参数,并返回一个指向tm结构体的指针,该结构体包含了年、月、日、时、分、秒等信息。
3. strftime()函数strftime()函数可以将时间格式化为字符串。
它接受一个格式化字符串作为参数,并根据这个格式化字符串将时间转换为指定的格式。
例如,我们可以使用"%Y-%m-%d %H:%M:%S"来将时间格式化为"年-月-日时:分:秒"的形式。
4. mktime()函数mktime()函数与localtime()函数相反,它将一个tm结构体转换为时间戳。
我们可以使用mktime()函数将一个包含年、月、日、时、分、秒等信息的tm结构体转换为一个表示时间的秒数。
5. difftime()函数difftime()函数可以计算两个时间之间的差值。
它接受两个时间戳作为参数,并返回它们之间的差值,单位为秒。
6. clock()函数clock()函数用于测量程序运行的时间。
它返回程序运行的时钟周期数,单位为毫秒。
通过测量程序开始和结束之间的时钟周期数差值,我们可以计算出程序的运行时间。
7. sleep()函数sleep()函数用于让程序暂停执行一段时间。
它接受一个整数作为参数,表示暂停的秒数。
通过调用sleep()函数,我们可以让程序在执行到某个地方时暂停一段时间,然后再继续执行。
C语言中的时间日期函数
C语言中的时间日期函数在C语言中,时间和日期是非常重要的概念,我们经常需要处理时间和日期相关的操作。
为了方便对时间和日期进行处理,C语言提供了一系列的时间日期函数。
本文将介绍C语言中常用的时间日期函数,并提供一些示例代码来说明它们的使用方法。
1. time函数time函数用于获取当前的系统时间,返回从1970年1月1日零时开始经过的秒数。
其函数原型如下:```ctime_t time(time_t *timer);```参数`timer`为一个time_t类型的指针,可以用于获取系统时间。
示例如下:```c#include <stdio.h>#include <time.h>int main() {time_t currentTime;time(¤tTime);printf("当前时间:%ld\n", currentTime);return 0;}```上述代码将输出当前系统时间对应的秒数。
2. localtime函数localtime函数用于将一个时间戳转换为本地时间,返回一个tm结构体,其中包含了详细的年、月、日、时、分、秒等信息。
其函数原型如下:```cstruct tm *localtime(const time_t *timer);```示例代码:```c#include <stdio.h>#include <time.h>int main() {time_t currentTime;struct tm *localTime;time(¤tTime);localTime = localtime(¤tTime);printf("当前时间:%d-%d-%d %d:%d:%d\n", localTime->tm_year + 1900, localTime->tm_mon + 1, localTime->tm_mday,localTime->tm_hour, localTime->tm_min, localTime->tm_sec);return 0;}```上述代码将输出当前系统时间对应的年、月、日、时、分、秒。
计时写法
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会根据机器进行转换,更可靠。
用法:1.time_tstart,end;2.start=time(NULL);//ortime(&start);3.//…calculating…4.End=time(NULL);5.printf("time=%d\n",difftime(end,start));总结:C标准库中的函数,可移植性最好,性能也很稳定,但精度太低,只能精确到秒,对于一般的事件计时还算够用,而对运算时间的计时就明显不够用了。
2. clock()头文件:time.h函数原型:clock_t clock(void);功能:该函数返回值是硬件滴答数,要换算成秒,需要除以CLK_TCK或者CLK_TCKCLOCKS_PER_SEC。
比如,在VC++6.0下,这两个量的值都是1000。
用法:1.clock_tstart,end;2.start = clock();3.//…calculating…4.end = clock();5.printf("time=%f\n",(double)end-start)/CLK_TCK);3. timeGetTime()WIN32API头文件:Mmsystem.h引用库: Winmm.lib函数原型:DWORD timeGetTime(VOID);功能:返回系统时间,以毫秒为单位。
c 计时函数
c 计时函数【原创版】目录1.计时函数的概述2.计时函数的种类3.计时函数的使用方法4.计时函数的优缺点5.总结正文1.计时函数的概述计时函数,顾名思义,是一种能够用来测量时间的函数。
在编程语言中,计时函数被广泛应用,它可以帮助程序员精确地计算程序运行的时间,从而为程序的优化提供有力的支持。
2.计时函数的种类根据编程语言的不同,计时函数的种类也各不相同。
常见的计时函数有以下几种:(1)系统时间函数:如 C 语言中的 time() 函数,能够获取当前的系统时间。
(2)进程时间函数:如 Linux 系统中的 getrusage() 函数,能够获取进程的运行时间。
(3)线程时间函数:如 C++中的 std::chrono::thread_time 函数,能够获取线程的运行时间。
3.计时函数的使用方法以 C 语言为例,使用计时函数可以按照以下步骤进行:(1)包含头文件<time.h>。
(2)调用 time() 函数,获取当前时间。
例如:time_t t =time(NULL);(3)将 time_t 类型的时间转换为秒数。
例如:double seconds = t / 60.0;(4)使用计时函数的结果进行相关操作。
4.计时函数的优缺点计时函数的优点在于能够精确地测量程序的运行时间,为程序的优化提供有力的支持。
然而,计时函数也存在一定的缺点,如在不同的编程语言中使用方法不尽相同,需要根据具体情况进行调整。
5.总结计时函数是编程中常用的一种函数,能够帮助程序员精确地测量程序的运行时间。
根据编程语言的不同,计时函数的种类和使用方法也各不相同。
C语言的时间函数
C语言时间函数应用摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。
本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick (时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。
最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。
下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法。
通过学习许多C/C++库,你可以有很多操作、使用时间的方法。
但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。
比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。
美国是UTC-5。
Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。
这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。
epoch:时间点。
时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。
clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。
C(C++)语言中time函数的分析与总结
C语言中time函数本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。
本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。
在学习LinuxC时遇到了关于时间函数的问题,找到了这篇文章,希望能对有所需要的人有所帮助。
C/C++中的日期和时间头文件 time.h函数用途 函数名得到处理器时间 clock得到时间差 difftime设置时间 mktime得到时间 time得到以ASCII码表示的时间 asctime得到字符串表示的时间 ctime得到指定格式的时间 strftime摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。
本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick (时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。
最近,在技术群中有很多网友也多次问到 过C++语言中对时间的操作、获取和显示等等的问题。
下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使用时间的方法。
但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间 (Greenwich Mean Time,GMT)。
比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。
clock 函数
clock 函数clock函数是C语言中常用的时间函数之一,它用于计算程序运行的时间。
在本文中,我们将全面介绍clock函数及其用法,帮助大家更好地理解其功能。
我们需要了解clock函数的原型和定义。
在C语言中,clock函数的原型如下:clock_t clock (void);该函数返回一个clock_t类型的值,表示从程序运行开始到调用该函数时所消耗的时间,单位为时钟周期。
需要注意的是,clock函数返回的并不是实际的时间值,而是CPU时钟周期的数目。
接下来,让我们看一下clock函数的用法。
通常,在程序开始时调用clock函数获取一个起始时间,在程序结束时再次调用该函数获取一个终止时间,并通过相减计算程序的运行时间。
示例代码如下:```#include <stdio.h>#include <time.h>clock_t start, end;double cpu_time_used;start = clock();// 程序代码end = clock();cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;printf("程序运行的时间为 %f 秒\n", cpu_time_used);return 0;}```该示例代码中,我们通过clock函数获取程序运行的起始时间和终止时间,并用终止时间减去起始时间计算程序的运行时间。
由于clock函数返回的是CPU时钟周期的数目,我们需要将其除以CLOCKS_PER_SEC来得到实际的时间值。
需要注意的是,clock函数返回的时间值可以受到系统中其他进程的影响。
在计算程序运行时间的时候,我们应该让程序独立运行,并避免与其他进程共享CPU时间。
除了计算程序运行时间,clock函数还常用于生成随机数种子。
由于clock函数每次返回的数值都不同,我们可以利用它来生成不同的随机数序列,如下所示:```#include <stdio.h>#include <stdlib.h>#include <time.h>int i;srand((unsigned)clock());for (i = 0; i < 10; i++) {printf("%d\n", rand());}return 0;}```该示例代码中,我们使用srand函数将clock函数返回的时间值作为随机数种子,并使用rand函数生成10个随机数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言计时函数
(2012-05-16 09:30:18)
转载▼
分类:c*cpp
标签:
杂谈
1. <time.h>中函数clock(),返回类型clock_t,精确度,毫秒级别
实例:
#include <stdio.h>
#include <time.h>
#include <math.h>
void test()
{
int i = 0;
int j = 0;
double a = 0;
while (i++ < 1000000)
while (j++ < 1000000)
{
a = sqrt(2.0);
}
}
int main(void)
{
clock_t start, finish;
double duration = 0.0;
start = clock();
test();
finish = clock();
duration = (double)(finish - start);输出单位ms
duration = (double)(finish - start) / CLOCKS_PER_SEC; //输出单位为妙,精确到毫秒级
//#define CLOCKS_PER_SEC 1000
printf("%f seconds\n", duration);
return 0;
}
2、<time.h>中函数time(&t),精确度,秒级别
功能:取以秒为单位的,从1970年1月1日格林威治时间00:00:00算起的当前时间,并把它存在长整形变量t中,函数返回如前所述的时间秒值。
测试程序如下:
#include "stdio.h "
#include "time.h "
#include "stdlib.h "
main()
{
long start,end;
time(&start);
delay(50000);
time(&end);
printf( "end-start=%ld\n ",end-start);
getch();
}
3. 最精确的计时:QueryPerformanceCounter来查询定时器的计数值,如果硬件里有定时器,它就会启动这个定时器,并且不断获取定时器的值,这样的定时器精度,就跟硬件时钟的晶振一样精确的。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void test()
{
int i = 0;
int j = 0;
double a = 0;
while (i++ < 1000000)
while (j++ < 1000000)
{
a = sqrt(2.0);
}
}
int main(void)
{
LARGE_INTEGER start;
LARGE_INTEGER end;
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
test();
QueryPerformanceCounter(&end);
printf("user time : %.10f seconds\n", (double)(end.QuadPart - start.QuadPart) / (double)freq.QuadPart);
return 0;
}。