vs2005中什么函数能替代srand( WCE_FCTN(time) (NULL) )呀
查了一下,这个函数好像是EVC中的?vs2005中好像是不支持的,我编译出现了如下错误:
error C2065: 'time' : undeclared identifier
error C3861: 'WCE_FCTN': identifier not found
求问各位大虾,vs2005中有木有什么函数可以替代srand( WCE_FCTN(time) (NULL) )的呀?
[解决办法]
CE 下不支持的,无论是 EVC 还是 VS 系列
随机数的种子在 CE 下无法使用系统函数生成,只有自己去想办法。直接使用 0,或使用 Tick count 之类的都可以。
[解决办法]
可以使用
srand((UINT)GetCurrentTime());
试试看
尽量不要用srand(0)
不然进程每次生成的随机数都一样,应该也不是你要的结果吧!
其实srand(n)中的n尽量通过系统时间的相关来获得,
可以保证每次的种子都不是同一个数,也就在很大程度上满足随机的要求
[解决办法]
DWORD sr;int RandBit() { if (!sr) if (!(sr = GetTickCount())) sr = 1; sr = ((((sr>>7) ^ (sr>>5) ^ (sr>>2) ^ (sr>>1) ^ sr) & 1) << 31) | (sr >> 1); return (sr & 1);}DWORD WINAPI Random () { DWORD res = 0, loop; for (loop = 0; loop < 32; loop++) res = ((res<<1) | RandBit()); return res;}