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