【发布时间】:2014-11-12 08:07:21
【问题描述】:
将未初始化的变量传递给srand而不是time(NULL)的结果是个好主意吗?
就是一个#include,少一个函数调用。
示例代码:
#include <stdlib.h>
int main(void) {
{
usigned seed; //uninitialized
srand(seed);
}
//other code
return 0;
}
而不是
#include <stdlib.h>
#include <time.h>
int main(void) {
srand(time(NULL));
//other code
return 0;
}
【问题讨论】:
-
您为什么认为任何使用未初始化的变量是个好主意?
-
初始化并不意味着随机。只需使用时间(NULL)。
-
除非你想在每次运行程序时都生成同一系列的随机数,否则我认为这不是一个好主意。
-
未定义行为意味着任何事情都可能发生。程序可能会崩溃。它可能看起来工作正常。根据月相,它可能会默默地破坏记忆。它可能会擦除您的硬盘驱动器。它可能会向您的母亲发送一封令人讨厌的电子邮件。它可能会让恶魔从你的鼻子里飞出来。就 C 语言而言,存在所有允许的行为。