关于container_of宏的疑问
辉hoi 2014-07-03 10:31:28 linux/kernel.h中的定义:
#define container_of(ptr, type, member) ({ \
const (typeof(((type *)0)->member) *)__mptr = ptr; \
(type *)(__mptr - offsetof(type, member)); \
})
为何不能定义成这样,而非要用一个局部变量来保存ptr,有什么好处?
#define container_of(ptr, type, member) ({ \
(type *)(ptr - offsetof(type, member)); \
})