指向不存在的结构的指针作为另一个结构中的成员变量是什么意思?
What is the meaning of pointer to non-existing struct as a member-variable in another struct?
我见过这样的 C 代码块:
struct Struct1
{
struct Struct2* var;
}
我想知道 Struct2
在这个 example.In 代码中的确切含义,这是第一次使用名称 Struct2
。
类型struct Struct2
是一个不完整的类型(前提是在结构体Struct1的声明之前没有结构体的定义)。如果需要结构的定义,它可以在别处定义。但是像那样指向这种类型的指针
struct Struct2 *var;
是一个完整的类型。
例如,您可以按以下方式声明一个结构struct List
struct List
{
struct Node *head;
struct Node *tail;
};
在此声明中不需要结构的完整定义struct Node
。结构 struct List
包含两个指向列表第一个和最后一个节点的指针。
然后在下面的某个地方,甚至在另一个 header 中,您可以定义结构 struct Node
,例如
struct Node
{
int data;
struct Node *next;
};
我见过这样的 C 代码块:
struct Struct1
{
struct Struct2* var;
}
我想知道 Struct2
在这个 example.In 代码中的确切含义,这是第一次使用名称 Struct2
。
类型struct Struct2
是一个不完整的类型(前提是在结构体Struct1的声明之前没有结构体的定义)。如果需要结构的定义,它可以在别处定义。但是像那样指向这种类型的指针
struct Struct2 *var;
是一个完整的类型。
例如,您可以按以下方式声明一个结构struct List
struct List
{
struct Node *head;
struct Node *tail;
};
在此声明中不需要结构的完整定义struct Node
。结构 struct List
包含两个指向列表第一个和最后一个节点的指针。
然后在下面的某个地方,甚至在另一个 header 中,您可以定义结构 struct Node
,例如
struct Node
{
int data;
struct Node *next;
};