C语言 头文件相互引用的问题

具体是这样的 有两个C文件和两个h头文件 具体如下
a.c b.c a.h b.h其中a.h和b.h中分别定义了一个结构体提
分别是在a中定义了 a_t ,在b中定义了b_t;
这时我在b.c这个C文件中实现了一个函数testb
这个函数需要两个参数 分别是a_t *p1,b_t *p2
在b.h中声明函数void testb(a_t *p1,b_t *p2);
由于在b.h头文件中声明函数时引用了a.h头文件里的a_t这个结构
所以报错了 有什么方法可以避免这种情况吗

增加头文件c.h包含a.h,b.h 声明void testb();
在c.c内实现testb();
另外防止头文件被多次包含时重复定义 需要用
#ifndef
#define
````
#endif
来修饰头文件内容 以防止重复编译
温馨提示:答案为网友推荐,仅供参考
相似回答