Linuxカーネルのcontainer_of()
マクロは次のように定義されています。
#define container_of(ptr, type, member) ({ \
const typeof( ((type*)0)->member) * __mptr =(ptr);\
(type*)( (char*)__mptr - offsetof(type,member) );})
なぜこれは((type*)0)->member
ではなく、を使用するの(type*)->member
ですか?