我一直在尋找下面代碼的精確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