我正在声明一个节点,但会抛出以下错误
错误:未知类型名称'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;
}
我该如何解决?
答案 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
。