我一直在寻找下面代码的精确Win实现。我不是一个优秀的程序员,我的代码最初是在UNIX中,但我必须尽可能少地修改它。我从一些Google搜索中了解到,主要问题是没有Win等价物的“gettimeofday”。不管怎样,我想尽可能保留相同的程序结构。为Windows提供时间函数srand()
struct timeval tv;
time_t curtime;
gettimeofday(&tv, NULL); // ???
curtime = tv.tv_usec;
srand(tv.tv_usec); //time(&curtime)
通常'srand(time(0))'就足够了,除非您希望每秒钟启动/停止多次程序,否则您并不需要亚秒级的分辨率来播种PRNG。 –
将输出示例添加到该函数的控制台,就好像已经存在于windowze或您从Unicse运行的地方 – umlcat
您是否清楚地理解此代码的作用?为什么?如果你只需要播种伪随机发生器,常用的方法是使用当前的UTC时间(以秒为单位):srand(time(NULL)),它在UNIX和Windows上均可使用。为什么你需要'tv.tv_usec',只需要几微秒的时间呢? – Rost