今天,我的编程老师给了我们一个解决的挑战.
我们有两个结构,但每个结构都使用另一个结构,如下所示:
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;
Run Code Online (Sandbox Code Playgroud)
当然de声明的顺序每次都会给出"NODE_X类型非声明"错误.
有什么方法可以解决这个问题吗?
我不知道是否存在结构的原型,如:
typedef struct NODE_A;
Run Code Online (Sandbox Code Playgroud)
转发声明两个typedefs 可能最容易:
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;
};
Run Code Online (Sandbox Code Playgroud)