ちょっとお聞きしたいんですが、以下のようなファイル
---ファイルここから---
--func.c--
#include <library1.h>

#ifdef BAR
#define FOO
#include <library2.h>
#endif
(以下略)
--library1.h
(略)
#include <library2.h>
(以下略)
--library2.h--
(略)
typedef _hoge hoge;

#ifdef FOO
struct _hoge {(構造体の中身:中略)
};
#endif
(以下略)
---ファイルここまで---

で、gcc -I(ライブラリヘッダファイルの場所) -DBAR -c fonc.c でコンパイルするようなfunc.cを
書くときに、func.cの中で構造体hogeは使用できるのがgccの仕様として正しいのでしょうか
それとも、できないのが正しいのでしょうか。
#実はgtk+-2.6.2 + ruby-gdkpixbuf2-0.11.0で上のようなところで
#hogeに対応する構造体が完全に定義されないためにエラーが出て困ってます。
#(cppを通してみたらstruct _hoge { }; の部分が出てこなかった。)
#gccはgentoo linuxの3.4.3.20050110というバージョンです。