c语言经典宏函数 c语言rand函数?
c语言rand函数?
Rand函数,C语言中用来生成随机数的函数。
Rand函数边界:stdlib.h头文件中有一个宏#define RAND_MAX 0x7fff。
Rand生成一个0-0x7fff的随机数,即一个最大值为32767的数。
Rand函数原型
#包含ltstdlib.hgt
整数(无效)
Rand函数调用
在每次调用之前,rand()函数会查询是否调用了srand(seed)以及是否为seed设置了值。如果是,它会自动调用一次srand(seed)来初始化它的初始值。
如果之前没有调用过srand(seed),系统会自动给种子赋一个初始值,即srand(1)自动调用一次。
Srand函数
Srand函数是随机数发生器的初始化函数,原型:
void srand(无符号整型种子)
这个函数需要提供一个种子,比如srand(1),用1初始化种子。
rand()生成随机数时,如果种子是用srand(seed)播的,一旦种子相同(下面的getpid方法),生成的随机数也就相同了。当然很多时候rand()生成的随机数是故意随机化的,用time作为种子srand(time(NULL),这样每次运行程序的时间肯定不一样,生成的随机数也肯定不一样。
我们经常用系统时间来初始化,用time函数来获取系统时间。得到的值是一个时间戳,即从1970年1月1日0: 00到现在的秒数,然后将得到的time_t类型数据转换成(无符号int)数,然后传递给srand函数。用法如下:
Srand((unsigned int)time(null))//我们在使用rand和SRAND时主要使用这种初始化方法!!
如果还是觉得时间间隔太小,可以在(无符号)时间(0)或(无符号)时间(NULL)后乘以一个合适的整数。例如,srand((无符号)时间(空)*10)
当time的参数传递NULL时,表示获取time_t数据时没有参数。时间函数的原型如下。
time _ t time(time _ t * tloc)//tim
c语言中声明max函数的意义何在?
Max函数一般取最大值并返回。C库函数中没有max函数,一般根据需求定制max函数:
int max(int a,int b)
{
if(ab)返回a;
返回b;
}
或者定制为宏功能:
#定义max(a,b) ((a)(b)(a):(b))
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。