ton type a une taille virtuellement infinie, non ? 
 
si tu veux juste des références entre les deux classes, utilise des pointeurs et une déclaration forward ...
 
exemple :
Code :
 - struct TB;
 - typedef struct TB B;
 - typedef struct TA {
 -   ...;
 -   B *b;
 - } A;
 - struct TB {
 -   ...;
 -   A *a;
 - };
 
  | 
note que l'un des deux pointeurs n'est pas nécessaire, mais qu'il en faut au moins un ... à toi de voir de quelle manière ce sera le mieux dans ton contexte