天天看點

container_of()宏定義

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

#define container_of(ptr, type, member) ({          \

const typeof(((type *)0)->member)*__mptr = (ptr);    \

    (type *)((char *)__mptr - offsetof(type, member)); })

功能:通過結構體中的某個成員的位址,推導出該結構體的位址。

參數:

type:結構體的類型。

member:結構體中的成員。

ptr:某個成員(也就是member)的位址。