>439
>ヘッダに書くincludeは、ヘッダ内で使用している構造体等の必要に応じて書く。
(C++はともかく)Cでは余程のこと(極端に肥大化するとか)がない限り、
型定義と関数宣言の依存関係は1つのヘッダ内で収まると思うのだが。

C++は苦しいだろうが無理ではない。継承やinlineを避け、クラスメンバはポインタで持たせる等すれば
相互依存を避けられるし、そうすることのメリットもある。
(詳しくはEffectiveC++を見ると良い)