0

我正在使用 rand 在 Windows、Visual Studio 2010 上获取一些“随机”数字。

在我已经包含并使用的主文件中:
srand(time(NULL))

在另一个文件中,在对象的构造函数中
对象是全局定义的,由于它在 OpenGL 函数(Init,Render)中的使用,
我在我的笔记本电脑上调用 rand() % bound,10 次并得到相同的结果和桌面。

这应该是由于在从 main 播种 rand 之前创建的对象。

我怎样才能避免这种情况并保持对象是全局的?

4

1 回答 1

2

在全局对象的构造函数中,srand(time(NULL))在使用rand. 或者,拥有另一个具有静态存储持续时间的非本地对象srand(time(NULL))。确保它在同一个翻译单元中定义,但在使用rand. 具有静态存储持续时间的非本地对象按定义顺序初始化。

于 2013-02-16T15:59:46.970 回答