,C语言头文件有关问题,怎么做到不相互嵌套包含对方头文件

求助,C语言头文件问题,如何做到不相互嵌套包含对方头文件。
比如: 


/***tesmain.h******/ 
#ifndef _TESMAIN_H_ 
#define _TESMAIN_H_ 
#define MAX_ARRAY 20 
typedef struct a 

 float array[MAX_ARRAY]; 
 int rear; 
 int front; 
 int count; 
}*pt_a; 
void printa(pt_b strb)  
#endif 

/******tessub.h********/ 
#ifndef _TESSUB_H_ 
#define _TESSUB_H_ 
typedef struct b 

float angle; 
float vector; 
}*pt_b;  
void printb(pt_a stra); 
#endif 

如上,两个头文件需要相互用到对方的数据结构。但我不希望将他们放到一个文件中。请问有什么办法能做到不在头文件中相互包含对方头文件?

------解决方案--------------------
放在另外一个公共文件中吧。

两个都包含他。

不然还不知道有什么好办法。

请楼下大牛告知。。
------解决方案--------------------
C/C++ code

//试试这种方法 其实我也不敢保证一定行
/***tesmain.h******/  
#ifndef _TESMAIN_H_  
#define _TESMAIN_H_ 
 
#define MAX_ARRAY 20  

typedef struct a  
{  
    float array[MAX_ARRAY];  
    int rear;  
    int front;  
    int count;  
}*pt_a; 

void printa(struct b *strb);
   
#endif  

/******tessub.h********/  
#ifndef _TESSUB_H_  
#define _TESSUB_H_ 
 
typedef struct b  
{  
    float angle;  
    float vector;  
}*pt_b;
   
void printb(struct a *stra); 
 
#endif

------解决方案--------------------
把公用的结构放到一个文件里
------解决方案--------------------
探讨

把公用的结构放到一个文件里