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

c语言gettickcount

发布时间: 2022-04-15 02:19:34

① 如何应用c语言实现随机数的产生

(1)添加头文件 #include"windows.h"
然后在文件中添加srand((unsigned)GetCurrentTime());或srand((unsigned)GetTickCount());
或者
(2)添加头文件 #include<time.h>
然后在文件中添加 srand((unsigned)time(NULL));
解释:
srand()是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的.
上面是有个随机种子的说明及方法,为了避免重复.然后再 用 随机函数,rand() 就行了.
头文件是 stdlib.h

② C语言 如何连续产生随机数

很好解决,用gettickcount
函数
做种子,精确到毫秒。我刚刚用它解决了16毫秒产生65000个不同
随机数

③ 请问C语言中clock()函数该怎么用

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。

它的具体功能是返回处理器调用某个进程或函数所花费的时间。函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中clock_t是用来保存时间的数据类型。

在time.h文件中,我们可以找到对它的定义:

#ifndef _CLOCK_T_DEFINED

typedef long clock_t;

#define _CLOCK_T_DEFINED

#endif

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

clock的返回值一直是0的原因:

1、编译器优化,for循环实际根本没执行,直接跳过去了,所以时间为0。

2、clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少,那么clock算出的时间也很少。

3、建议使用time gettimeofday函数来计时。

(3)c语言gettickcount扩展阅读:

C语言中clock()函数的程序例1:(TC下运行通过)

#include<stdio.h>

#include<time.h>

intmain(void)

{

clock_tstart,end;

start=clock();

delay(2000);

end=clock();

printf("Thetimewas:%f ",(double)(end-start)/CLK_TCK);

return0;

}

说明:CLK_TCK定义在TC中的time.h中:#defineCLK_TCK18.2。

在VC6.0中也有关于CLK_TCK的宏定义,不过其值不再是18.2,而是1000。

实际上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。

④ 请教C语言的一个问题,关于GetTickCount!

这是VC的问题,不是C语言本身的问题。具体请参考MSDN。

⑤ 如何用C语言获取当前系统时间

需要利用C语言的时间函数time和localtime,具体说明如下:

一、函数接口介绍:

1、time函数。

形式为time_t time (time_t *__timer);

其中time_t为time.h定义的结构体,一般为长整型。

这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。

time函数返回的为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

由于是秒作为单位的,所以这并不是习惯上的时间,要转为习惯上的年月日时间形式就需要另外一个函数了。

2、localtime函数。

形式为struct tm *localtime (const time_t *__timer);

其中tm为一个结构体,包含了年月日时分秒等信息。

这种结构是适合用来输出的。

二、参考代码:

#include<stdio.h>
#include<time.h>
intmain()
{
time_tt;
structtm*lt;
time(&t);//获取Unix时间戳。
lt=localtime(&t);//转为时间结构。
printf("%d/%d/%d%d:%d:%d ",lt->tm_year+1900,lt->tm_mon,lt->tm_mday,lt->tm_hour,lt->tm_min,lt->tm_sec);//输出结果
return0;
}

注意事项:

struct tm中的tm_year 值为实际年减去1900, 所以输出的时候要是lt->tm_year+1900。

⑥ C语言怎么获取时间戳

DWORD tm = ::GetTickCount();

……
#ifndef _TIME32_T_DEFINED
typedef _W64 long __time32_t; /* 32-bit time value */
#define _TIME32_T_DEFINED
#endif /* _TIME32_T_DEFINED */

#ifndef _TIME64_T_DEFINED
#if _INTEGRAL_MAX_BITS >= 64
typedef __int64 __time64_t; /* 64-bit time value */
#endif /* _INTEGRAL_MAX_BITS >= 64 */
#define _TIME64_T_DEFINED
#endif /* _TIME64_T_DEFINED */

#ifndef _TIME_T_DEFINED
#ifdef _USE_32BIT_TIME_T
typedef __time32_t time_t; /* time value */
#else /* _USE_32BIT_TIME_T */
typedef __time64_t time_t; /* time value */
#endif /* _USE_32BIT_TIME_T */
#define _TIME_T_DEFINED /* avoid multiple def's of time_t */
#endif /* _TIME_T_DEFINED */
……

⑦ 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语言计算时间函数

标准库的time.h里有时间函数

time_t time (time_t *timer)
计算从1970年1月1日到当前系统时间,并把结果返回给timer变量,
函数本身返回的也是这个结果.time_t这个类型其实就是一个int.

另有:
double difftime ( time_t timer2, time_t timer1 )
把返回time2和time1所储存的时间的差.

⑨ C语言 GetTickCount()函数

函数原型:
DWORD GetTickCount(void);
函数作用:
1、一般用作定时相关的操作。GetTickCount() 返回开机以来经过的毫秒数
2、在要求误差不大于1毫秒的情况下,可以采用GetTickCount()函数,该函数的返回值是DWORD型,表示以毫秒为单位的计算机启动后经历的时间间隔。使用下面的编程语句,可以实现50毫秒的精确定时,其误差小于1毫秒。
函数举例:
实现延时
Public Sub Sleep(numa As Long)
Dim num1 As Long
Dim num2 As Long
Dim numb As Long
numb = 0
num1 = GetTickCount
Do While numa - numb > 0
num2 = GetTickCount
numb = num2 - num1
DoEvents
Loop
End Sub
C++版
DWORD k=::GetTickCount(); //获取毫秒级数目
int se = k/1000; // se为秒
cout<<se<<endl;
库文件:kernel32.dll
C/C++头文件:winbase.h
windows程序设计中可以使用头文件windows.h