首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

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

2012-04-23 
vs2005中什么函数能替代srand( WCE_FCTN(time) (NULL))呀查了一下,这个函数好像是EVC中的?vs2005中好像是

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

热点排行