-1
q_node * pop(Queue * que) {
   if ((que->size == 0) || (que == NULL)) return null;
   q_node * item = que->head;
   if (freeNode(que)) {
      que->size--;
      return item;
   } else return null;
}

当我尝试编译时,我收到了有关此函数底线的上述警告。结构 q_node 和 Queue 编译没有问题,freeNode() 也是如此......任何想法我做错了什么?

对于第一个 if 语句行,我还收到错误“null undeclared”。

4

2 回答 2

1

在 C 中,使用NULL而不是null. 您可能需要#include <stdlib.h>获取此宏。

于 2012-10-21T04:10:45.257 回答
1
q_node * pop(Queue * que) {
   if ((que->size == 0) || (que == NULL)) return NULL;
   q_node * item = que->head;
   if (freeNode(que)) {
      que->size--;
      return item;
   }
   return NULL;
}

去掉else语句是没用的。现在没有警告 ^_^ Gcc 看到你最后错过了一个 return 声明,并让你知道以防万一。

编辑:空-> 空

于 2012-10-21T04:14:48.653 回答