这是关于c语言的问题,
我试图创建两种类型的结构,A和B.
这样我就可以声明一个链表A->B->A->B...
我的问题是,我应该在A之前定义A还是在A之前定义B或者是否存在某种自举方法?
答案 0 :(得分:1)
您的问题是,任何一种类型都必须知道能够定义的另一种类型。您定义类型的顺序无关紧要,但是您必须告诉第一个定义第二个类型,但稍后会定义。这称为前向声明,请参阅BostonBooks评论中的链接。在C(和C ++,也是顺便说一句),这将看起来像这样:
struct B;
struct A
{
struct B* next;
};
struct B
{
struct A* next;
};
(我从M.M的评论中窃取了代码......)