当前位置:首页 » 编程语言 » c语言中clock函数如何使用
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中clock函数如何使用

发布时间: 2022-07-30 19:39:30

c语言中有没有用于计时的函数怎么用

有,CLOCK函数。

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:clock_t clock(void) ; #ifndef _CLOCK_T_DEFINED typedef long clock_t;
#define _CLOCK_T_DEFINED #endif。

可以看到每过千分之一秒(1毫秒),调用clock函数返回的值就加1。

㈡ C++ 里面的clock()函数用法 它能不能在一个程序里面多次的使用 计算几个函数的运行时间勒 请高手指教 我

clock_t clock(void);
返回当前时钟计数, 可以在程序中多次调用,clock_t相当于U32型
因此可以定义
clock_t start_time, stop_time;
start_time = clock();
....//任意代码
stop_time = clock();
上面代码的运行时间就是stop_time - start_time, 单位为ms(毫秒)

㈢ c 语言中clock函数怎么用啊

/* CLOCK.C:
等待3秒,记录程序运行开始时间(start里)
循环600000次做运算
[a = sqrt(sqrt(16.0)); a = sqrt(sqrt(16.0));]
记录程序运算结属时间(finish里)
算出这六十万次运行时间.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

void sleep( clock_t wait );

void main( void )
{
long i = 600000L;
clock_t start, finish;
double ration;
double a;

/* 等三秒 */
printf( "Delay for 3 seconds\n" );
sleep( (clock_t)3 * CLOCKS_PER_SEC );
printf( "Done!\n" );

/* Measure the ration of an event. */
printf( "Time to do %ld loops is ", i );
start = clock();

while( i-- ) {
a = sqrt(sqrt(16.0)); a = sqrt(sqrt(16.0));

}

finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%lf seconds\n", ration );
}

/* 等待多少毫秒的子程序 */
void sleep( clock_t wait )
{
clock_t goal;
goal = wait + clock();
while( goal > clock() )
;
}

㈣ c语言中的clock()问题

就是
while(clock()-now<CLOCKS_PER_SEC) ;
的意思,注意后面还有个分号,这是一个空循环。因为clock会返回当前时间,now是一个过去的时刻,所以这个条件的意思是 当前时间比那个时刻晚的多少小于CLOCKS_PER_SEC,也就是如果时间相差还不到CLOCKS_PER_SEC就一直循环。因此这个循环的意思就是等待从now = clock();开始,CLOCKS_PER_SEC个tick才退出循环,继续执行,就是等待CLOCKS_PER_SEC时间的意思,看名称,应该是等一秒的意思。

㈤ C语言中clock的用法

clock()返回的是自程序启动以来经过的CPU时间,不是通常意义的时间。

㈥ c语言clock怎么用啊 算程序运行时间谢谢大家了

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
clock_t start, finish;
double ration=0;
start = clock();

/*******************************
**********添加代码**************
*******************************/

finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", ration );

}

把你需要计算时间的代码添加进去就可以结算出时间了。有不明白的可以继续问我。

㈦ c语言如何计时

  1. C语言中提供了许多库函数来实现计时功能

  2. 下面介绍一些常用的计时函数

    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的定义为:

    structtimeval{

    longtv_sec;//秒数

    longtv_usec;//微秒数

    }

    可见该函数可用于在linux中获得微秒精度的时间。

    说明:使用这种方式计时,精度可达微秒。经验证,在arm+linux的环境下此函数仍可使用。

㈧ c++库中clock()函数的问题

C语言函数clock()

能:
返回处理器调用某个进程或函数所花费的时间。

法:
clock_t
clock(void);
说明:clock_t其实就是long,即长整形。该函数返回值是硬件滴答数,要换算成秒或者毫秒,需要除以CLK_TCK或者
CLK_TCK
CLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可。

㈨ c语言 时间函数

c语言时间函数:
1、获得日历时间函数:
可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);
如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:
2、获得日期和时间函数:
这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?
其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。