>>584
> OOでなくては綺麗に隠蔽出来ないだろう。
いや、情報隠蔽「だけ」なら OOPL でなくても可能。

外に見せるヘッダ。struct foo は宣言だけ。
------------
struct foo;

struct foo* foo_create();
int foo_do_something(struct foo*, param, param);
int foo_destroy(struct foo*);
------------

で struct foo は実装側で定義する。これは C で実際に使われてる手法だし、まったく無理の
ないコードだよね。

(もちろん継承とか多態とか絡んでくると、C だと綺麗に書けなくなるけど)