问题一:[Warning] assignment makes pointer from integer without a cast
问题二:[Warning] assignment from incompatible pointer type
举例说明
typedef struct _Item
{
char * key;
char * value;
unsigned int count;
struct Item * next;
} Item;
1、
NULL ==(np->key = strdup(key)
产生问题一: 因为np->key 是char * 类型,而strdup虽然返回也是char * 类型,但是还是需要转换才行
改为
NULL ==(np->key = (char *)strdup(key)
报警消失
注意:未经声明的函数原型一律默认为返回int值
2、
static struct Item *hashtab[HASHSIZE];
........
np->next = hashtab[hashval]; //此处产生问题二
改为
np->next = (struct Item *)hashtab[hashval];
错误消失