双向结构指针链接,C

时间:2013-06-29 08:45:17

标签: c pointers struct

是否有可能在结构之间形成双向链接?我试图像这样实现它:

typedef struct
{
    int foo;
    b *b;
} a;

typedef struct
{
    int bar;
    a *a;
} b;

但结构a不知道b是什么,因为它之后被声明。

2 个答案:

答案 0 :(得分:3)

试试这个,

typedef struct a a;
typedef struct b b;

struct a
{
    int foo;
    b *b;
} ;

struct b
{
    int bar;
    a *a;
} ;

答案 1 :(得分:1)

如果您需要引用之前可能尚未定义的其他结构,请按照这样的方式进行声明,它应该有效:

typedef struct
{
    int foo;
    struct b *b;
} a;

typedef struct
{
    int bar;
    struct a *a;
} b;