69,382
社区成员
发帖
与我相关
我的任务
分享
struct list_head {
struct list_head *next, *prev;
};
struct list_node {
struct list_node *next;
ElemType data;
};
#define list_entry(ptr, type, member) container_of(ptr, type, member)
container_of宏定义在[include/linux/kernel.h]中:
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
offsetof宏定义在[include/linux/stddef.h]中:
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)