如何在struct中使用struct

时间:2016-10-24 23:07:42

标签: c struct

今天,我的编程老师给了我们一个解决的挑战。

我们有两个结构,但每个结构都使用另一个结构:

typedef struct nodeA {
    int data;
    NODE_B *node_b;
    struct nodeA *next;
} NODE_A;

typedef struct nodeB {
    int data;
    NODE_A *node_A;
    struct nodeB *next;
} NODE_B;

当然de声明的顺序每次都会给出“NODE_X类型非声明”错误。

有什么方法可以解决这个问题吗?

我不知道是否存在结构的原型,如:

typedef struct NODE_A;

1 个答案:

答案 0 :(得分:9)

最容易转发声明typedef s:

typedef struct nodeA NODE_A;
typedef struct nodeB NODE_B;

struct nodeA {
    int data;
    NODE_B *node_b;
    NODE_A *next;
};

struct nodeB {
    int data;
    NODE_A *node_A;
    NODE_B *next;
};