C:不完整的返回类型

Mat*_*udy 3 c struct declaration

我试图在C中实现链表,并从这个简单的代码开始:

#include <stdio.h>

struct int_node;
struct int_list;
struct int_list create_list();

int main() {

    struct int_list list = create_list();
    return 0;
}

struct int_node {
    int value;
    struct int_node * next;
};

struct int_list {
    struct int_node * first;
};

struct int_list create_list() {
    /* Creates an empty list, first node=null */
    struct int_list list;
    list.first = NULL;
    return list;
};
Run Code Online (Sandbox Code Playgroud)

建设时我遇到两个错误:

  1. 使用不完整的返回类型'struct int_list'调用'create_list'
  2. 变量具有不完整类型'struct int_list'

我寻找答案,我能找到的是我需要在使用它之前声明结构和函数,我做了.

我尝试的另一件事是将main()函数移动到最后,这解决了错误,但这是一个愚蠢的解决方法,我想找出真正的解决方案.

有帮助吗?

Bil*_*nch 6

结构的定义也应放在之前main().也就是说,你的愚蠢修复实际上是正确的修复.