读书人

vs2005中什么函数能替代srand( WCE_FC

发布时间: 2012-04-23 13:17:38 作者: rapoo

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;} 

读书人网 >WinCE

热点推荐