header1.h
-----------------
struct A{
int a;
B *b;
};
header2.h
-------------------
#include"header1.h"
typedef struct b{
int aa;
char bb;
int cc;
}B;
main.c
--------------------
#include<header2.h>
main(){
struct A *ace;
ace = malloc(sizeof(struct A));
ace->b = malloc(sizeof(B));
}
问题:基本上,header1.h 需要使用 header2.h 中定义的结构。
困境:由于 header2.h 包含 header1.h,如果我在 header1.h 中包含 header2.h,我将引入循环依赖。
一些解决方案:解决问题的一种方法是使用 void 指针,但还有其他方法吗?我尝试向前声明它,但它说“重新定义 typedef”。