c中交替结构类型的链表

时间:2016-04-07 05:08:11

标签: c struct linked-list

这是关于c语言的问题,

我试图创建两种类型的结构,A和B. 这样我就可以声明一个链表A->B->A->B...

我的问题是,我应该在A之前定义A还是在A之前定义B或者是否存在某种自举方法?

1 个答案:

答案 0 :(得分:1)

您的问题是,任何一种类型都必须知道能够定义的另一种类型。您定义类型的顺序无关紧要,但是您必须告诉第一个定义第二个类型,但稍后会定义。这称为前向声明,请参阅BostonBooks评论中的链接。在C(和C ++,也是顺便说一句),这将看起来像这样:

struct B;
struct A
{
    struct B* next;
};
struct B
{
    struct A* next;
};

(我从M.M的评论中窃取了代码......)