我为散列函数编写了这个 block :
#include "debug.h"
#include "hash.h"
unsigned hash_add(unsigned char *name)
{
unsigned h;
for(h=0;*name;h+=name++);
return h;
}
我不断收到:
hashadd.c:7:17: warning: assignment makes integer from pointer without a cast [enabled by default]
最佳答案
for``h+=name++
的最后一个表达式是将地址(name
的类型为unsigned char *
)分配给 h
(unsigned int
类型)。改成
for(h = 0; *name; h += *name++);
^Dereference the pointer before assigning to h.
关于c - 指针类型不兼容的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22602446/