>>168
要するに、構造体のメンバを隠蔽したいということか?
だったら、構造体を不完全型として宣言すればいい。
構造体へのポインタ「だけ」が必要な関数には、

typedef struct foo foo;

という宣言だけを見せて、メンバへのアクセスが必要な関数には、

struct foo { ... };

という宣言を見せればいい。