两个宏是否一样功能?
大家分析一下,这两个宏写法不一样,是否一样功能?
#define container_of(ptr,TYPE,member) \
((TYPE *)((char*)(ptr) - offsetof(TYPE,member)))
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})