Cでの構造体の宣言についてお訊きしたいのですが、
typedef struct fooA {
inttmp ;
fooB*whole ;//
} fooA ;

typedef fooB {
fooA instance1 ;
fooA instance2 ;
} fooB ;

このような場合、どのように宣言するとコンパイルが通るのでしょうか。