一些Warning的解决 C语言

问题一:[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];

 错误消失

 

 

你可能感兴趣的:(warn)