1、宏:offsetof
#ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t)&(TYPE*)0)->MEMBER)
#endif
2、宏: container_of
#ifdef container_of
#define container_of(ptr, TYPE, MEMBER) ({
const typeof(((TYPE*)0)->MEMBER)* __mptr = (ptr);
(TYPE*)((char*)__mptr - offsetof(TYPE, MEMBER));
})
#endif