当前位置: 代码迷 >> WinCE >> vs2005中什么函数能替代srand( WCE_FCTN(time) (NULL) )呀,该怎么处理
  详细解决方案

vs2005中什么函数能替代srand( WCE_FCTN(time) (NULL) )呀,该怎么处理

热度:403   发布时间:2016-04-28 13:10:54.0
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尽量通过系统时间的相关来获得,

可以保证每次的种子都不是同一个数,也就在很大程度上满足随机的要求
------解决方案--------------------
C/C++ code
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;}
  相关解决方案