構造体のメンバのオフセットを取得する offsetof

Android のソースツリー内に頻繁に見かけられる offsetof というマクロ。

構造体のメンバのオフセットを取得するマクロなんだけど、よく考えられてるなと感心した。

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

もっとも、構造体のオフセットを知らなければならないようなケースは、アセンブラと C で構造体を共有する場合ぐらいなので、通常はほとんど必要ないんだけど。