c - 如何在结构中使用结构

标签 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 type non-declared”错误。

有什么办法可以解决吗?

我不知道是否存在以下结构的原型(prototype):

typedef struct NODE_A;

最佳答案

转发声明两个 typedef 可能是最简单的:

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;
};

关于c - 如何在结构中使用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40228970/

相关文章:

c - 如果我排除库和编译器扩展,C 中还剩下什么?

c - 如何用socket地址获取自己的IP地址?

c - 收到一条错误消息,指出该变量在已声明时尚未声明

c - 如何在参数中传递结构类型?

c - C中的图算法通过将网格读入数组

c - malloc 不存在的物理地址错误

C struct into array of struct pointers 编译错误

c - C 中的空结构

c++ - 定义仅由某个类需要的结构的最佳方法是什么?

c - 未使用的可变错误