5.5 container_of
container_of功能
获取结构体首地址
container_of( ptr, type, member)
ptr:结构体成员变量的地址
type:结构体类型
member:结构体成员变量
struct student{
int age;
int num;
int math;
} stu;
p = container_of ( & stu.num, struct student, num);
具体实现
#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) );})
cscop
cscop -Rk