错误:未知类型名称'node'

时间:2017-09-13 16:25:28

标签: c

我正在声明一个节点,但会抛出以下错误

  

错误:未知类型名称'node'

#include <stdio.h>

typedef struct node
{
    int info;
    node *sig; //<-- error: unknown type name 'node'
} nodeL;

int main(void) {
    nodeL n;
    printf("%x\n", n.info);

    return 0;
}

我该如何解决?

2 个答案:

答案 0 :(得分:1)

你必须记住,C编译器不知道什么是节点或节点(你可能在结构名称中输入错误),它不是C主类型。 在这一点上,nodo是一种结构类型,你必须&#34;说&#34;它到编译器,如:

typedef struct nodo
{
    int info;
    struct nodo *sig; 
} nodeL;

struct中的atribute nodo *sig;声明了一个成员sig,它是一个定义了结构类型的指针。

答案 1 :(得分:-1)

typedef struct nodo
{
    int info;
    struct nodo *sig; // Rather than: node *sig;
} nodeL;

您的结构名称node看起来就像您在结构中引用的那样。 nodo不是node

或许错误理解nodo(或node)是C类型。它不是一种类型。但是问题代码中定义了struct nodo