能力值:
( LV2,RANK:10 )
|
-
-
2 楼
请各位给些指点.先谢过.
各位新年快乐!
|
能力值:
(RANK:300 )
|
-
-
3 楼
Hash Table(哈希表)
Elf32_Word object的哈希表支持符号表的访问。
标号出现在下面帮助解释哈希表的组织,但是它们不是规范的一部分。
+ Figure 2-14: Symbol Hash Table
nbucket
nchain
bucket[0]
...
bucket[nbucket - 1]
chain[0]
...
chain[nchain - 1]
bucket数组包含了nbucket入口,并且chain数组包含了nchain个入口;索引从0开始。
bucket和chain保存着符号表的索引。Chain表入口类似于符号表。符号表入口的
数目应该等于nchain;所以符号表的索引也选择chain表的入口。
一个哈希函数(如下的)接受一个符号名并且返回一个可以被计算机使用的bucket索引
的值。因此,假如一个哈希函数返回一些名字的值为X,那么bucket[x%nbucket]
将给出一个索引y(既是符号表和chain表的索引)。假如符号表入口不是期望的,
chain[y]给出下一个符号表的入口(使用相同的哈希变量)。可以沿着chain
链直到选择到了期望名字的符号表入口或者是碰到了STN_UNDEF的入口。
+ Figure 2-15: Hashing Function
unsigned long
elf_hash(const unsigned char *name)
{
unsigned long h = 0, g;
while (*name) {
h = (h << 4) + *name++;
if (g = h & 0xf0000000)
h ^= g >> 24;
h &= ~g;
}
return h;
}
copy的....呵呵,我自己先看看....
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢狐兄
新年快乐!
|
|
|