2011-11-16 wcdj 夜深人静……
一段测试代码
#include<iostream>
using namespace std;
const int iTotal = 2000;
const int iMsgNum = 3;
char szFsm[iTotal] = {0};
int iFsmNo = 0;
int iAdd = -1;// add factor
int iIdx = 0;
int iLoopCnt = 0;
int Deal()
{
return iFsmNo;
}
int main()
{
while (1)
{
if (0 == (iIdx %= iTotal))
{
// test
if (iLoopCnt == 2) break;
++iLoopCnt;
++iAdd;
}
for (int i = 0; i != iMsgNum; ++i)
{
iFsmNo = iIdx + (iAdd + i) * iTotal;
cout << iFsmNo << endl;
}
++iIdx;
}
return 0;
}
case 1:
iFsmNo = iIdx + iAdd * iTotal
Index因子保证相邻元素的FsmNo不同,Add因子防止超时导致出现相同FsmNo的情况。
case 2:
iFsmNo = iIdx + (iAdd + i) * iTotal
iAdd += iMsgNum
i因子保证相同元素的FsmNo不同,修改Add因子防止再次使用相同元素的FsmNo时出现重叠。