title: container_of宏
date: 2019/7/24 15:49:26
toc: true
---
container_of宏
解析
#define list_entry(ptr, type, member) container_of(ptr, type, member)
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
#define list_entry(link, type, member) \
((type *)((char *)(link)-(unsigned long)(&((type *)0)->member)))
const typeof( ((type *)0)->member ) *__mptr = (ptr);
参考链接
offsetof与container_of宏总结
list_entry的宏定义
内核链表