C语言 time(NULL)

C语言 time(NULL),第1张

我们知道在产生随机数的时候,需要一个叫做种子seed的值作为产生随机数算法的初始值。

而c/c++库中的srand就是为这一次的随机数生成设置种子。s代表的就是seed的意思。

time_t

time(time_t

time);该函数返回自计算机计时的某个时刻起到现在所过去的秒数。

一般是返回自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数。

所以综上所述:

srand((unsigned)time(null));

这语句的含义就是以自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数作为

产生随机数算法的种子seed。

没有语句会对程序产生什么影响:

如果在程序运行时没有自主设置种子的话,用函数rand产生的随机数序列会是一样的。

而用srand设置随机数种子后,可能产生不同的随机序列(概率很大)。

之所以说以很大的概率产生不同的随机数序列,是因为从上面的解释可以看到,

srand是以秒数为单位的。一旦程序多次运行的时间间隔少于1s。那么srand设置种子也没有什么用处。所以库函数产生随机数有一定的缺陷。不知道我解释明白了没有!

1 time()函数的用途

返回一个值,即格林尼治时间1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。

2 time()函数的头文件

要使用time(),必须在程序中包含<timeh>头文件。

3 time()函数返回的数据类型

下面是从<timeh>文件中找到的函数声明:

time_t time(time_t t)

time(time_t t)

从声明中可以看出,time()函数返回值的数据类型是time_t。传递给time()函数的参数是指向time_t数据类型的指针。

4 time()函数使用示例

time()函数有两种使用方式:

(1) t1=time(NULL)或t1=time(0)

将空指针传递给time()函数,并将time()返回值赋给变量t1

(2) time(&t2);

将变量t2的地址作为实参传递给time()函数,函数自动把结果传递给t2,不需要额外的赋值语句。

示例代码:

#include <stdioh>

#include <timeh>

int main()

{

time_t t1,t2; //分别声明两种使用方式的赋值对象

t

t1=time(0); //第一种使用方式

time(&t2); //第二种使用方式

t

printf("t1=%ldn",t1);

printf("t2=%ld",t2);

t

return 0;

}

程序运行结果如下

t1=1531208713

t2=1531208713

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

若time_t参数没有被忽略,则经过的秒数也会被填入该指针所指向的区域内。

数据类型time_t其实就是一个long类型,在timeh中这样定义

typedef

long

time_t;

#include<stdioh>

#include<timeh>

#include<stdlibh>

void

main()

{

time_t

start,end;

start

=

time(NULL);

system("pause");

end

=

time(NULL);

printf("The

pause

used

%f

seconds\n",difftime(end,start));//<-

}

这段代码就

是求时间差的,其中用这个函数difftime();

希望对你有所帮助

time函数的基本形式是time(),这个函数的原型是time_t time(time_t time)

这个函数的基本用法是,首先你要声明一个实例,你这段程序中声明的是start 和end2个实例,而time()这个函数如果是time(null)返回的则是当前时间(确切的来说这么说是不正确的,其实time返回的是从格林威治时间1970年1月1日0点0分0秒到现在的秒数,你这个程序中可以这么理解)

你的这个程序定义了一个welcome类,这个类开头定义了2个time实例并赋予了初值(当前时间),当结束时间和开始时间相等时(time的最小分隔就是1),就不停的置end于当前时间,使得end能跳出这个循环其实是为了在1秒后打印出下面的一连串的目录,最后再一次赋值功能和上面相同,是为了这个界面能保留至少10秒钟

以上就是关于C语言 time(NULL)全部的内容,包括:C语言 time(NULL)、c语言time为什么值固定、C语言中,time()返回值那一串数字是什么啊,怎么获取时间差啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10108699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存