1

我有一个指向结构的指针tempA

struct SLNode *tempA;

我有一个函数叫sl_find Node()我这样称呼它:

tempA = sl_findNode(&list, word);

函数sl_findNode()如下所示:

 struct SLNode* sl_findNode (struct SLNode **list, char *str1) {
      assert (list);
      struct SLNode *curr = *list;
      while (curr) {
        if (strcmp(curr->word, str1) == 0) {
          return curr;
        }
        curr = curr->next;
      }
      return NULL;
    }

最后,list声明为:

struct SLNode *list = NULL;

编译器在第 77 行给了我警告:

tempA = sl_findNode(&list, word);

有谁知道为什么?

Word 是一个字符数组:

char word[30];

我从文本文件中读取字符并将它们循环添加到单词中

4

1 回答 1

3

当函数声明正确时(在您的情况下,它看起来正确),当定义是在第一次使用函数之后并且没有原型时会发生这种警告。

解决这个问题需要在第一次使用之前将函数移动为文本,或者在第一次使用之前添加函数的原型,如下所示:

struct SLNode* sl_findNode (struct SLNode **list, char *str1);
于 2013-04-15T00:36:05.193 回答