【发布时间】:2014-07-16 10:04:10
【问题描述】:
我使用这个函数来生成随机整数。
int rnd(int min, int max)
{
static int srand(time(0));
return min + rand() % max;
}
对吗?将srand(time(0)); 移动到主要功能可能会更好吗?像这样:
int rnd(int min, int max){
return min + rand() % max;
}
int main(){
srand(time(0));
..............
}
【问题讨论】:
-
@DebasishJana 不!你说的不对!
-
static int srand(time(0));不调用srand。 -
@πάνταῥεῖ,这里有什么问题?调用包含函数时会初始化静态数据
-
顺便说一句,随机库(在 C++ 中)提供了更简洁的方式来生成随机数(如
std::uniform_int_distribution)。 -
静态初始化错误。可能是
static int somevar = srand(time(0));,但前提是 srand 返回了一些虚拟值。
标签: c++