难以实现djb2哈希函数

时间:2017-02-09 02:34:00

标签: c hash casting hash-function

我正在尝试为哈希表创建一个函数,但是当我运行我的代码时,我得到一个警告,指出赋值在没有强制转换的情况下从指针生成整数。 我的代码是:

//from header file
//word_t is char*
typedef word_t* vc_ht_key;
typedef void *ht_key;

//in file
size_t hash(ht_key k) {
  unsigned long val = 5381;
  int c;
  while ((c = (*(vc_ht_key)k)++)) {
    val = ((val << 5) + val) + c;
  }
  return (size_t)val;
}

提前抱歉,我们提供任何遗漏信息。我得到了一个通用的哈希表,因此无法在此处发布所有内容。我希望有人可以解释类型铸造问题。例如,只需在while行中添加一个(int)。

0 个答案:

没有答案