|
发表于 2009-9-16 19:47:37
|
显示全部楼层
借地方存咚咚
int GetHashTablePos(char *lpszString, MPQHASHTABLE *lpTable, int nTableSize){  const int HASH_OFFSET = 0, HASH_A = 1, HASH_B = 2;int nHash = HashString(lpszString, HASH_OFFSET);int nHashA = HashString(lpszString, HASH_A);int nHashB = HashString(lpszString, HASH_B);int nHashStart = nHash % nTableSize, nHashPos = nHashStart;while (lpTable[nHashPos].bExists){   if (lpTable[nHashPos].nHashA == nHashA && lpTable[nHashPos].nHashB == nHashB)    return nHashPos;   else    nHashPos = (nHashPos + 1) % nTableSize;    if (nHashPos == nHashStart)    break;  }return -1; //Error value  |
|