厦门到清迈机票:请问,头文件该怎么写才不会出问题?

来源:百度文库 编辑:偶看新闻 时间:2024/06/12 10:06:27
例如,有三个h文件,fun_1.h和fun_2.h里用于声明两种同功能类别的函数,当然,不止一个函数,这个只是例子,具体如下:
main.h文件:
C/C++ code
typedef struct{   int a;   int b;}Main_Data;typedef struct{   char a;   char b;}Fun_Data;



fun_1.h文件:
C/C++ code
#include "main.h"extern fun_1(Main_Data a,Fun_Data b);



fun_2.h文件:
C/C++ code
#include "main.h"extern fun_2(Main_Data a,Fun_Data b);



我想使main.c文件内容如下:
C/C++ code
#include "main.h"#include "fun_1.h"#include "fun_2.h"int main(){   Main_Data a;   Fun_Data  b;   fun_1(a,b);   fun_2(a,b);}


这样直接编译会报错,说结构体重复定义;
那请问,如何在不改变h文件的数量,也不改变h文件里声明的函数的情况下,解决这个错误?