在看linux内核,里边有个哈希函数
#define _hashfn(dev, block) (((unsigned)(dev^block))%NR_HASH)#define hash(dev, block) hash_table[_hashfn(dev, block)]
是文件系统cache的实现中用到的, 不明白为什么用异或, 而且对hash表也不是很理解: 其是不是一个结构指针数组? 该数组与结构链表是怎样的一个关系? 是不是数组每个元素都在一个单独的链表里? 还是数组的每个元素所在的链表之间有相互关系?