关于形参和临时指针变量的问题
下面这个宏,大家都知道是它是通过成员地址获得成员所在结构的首地址。
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
这里ptr形参实际上是指向member的,新创建的__mptr也是指向member的。
我的问题是:为何不直接使用传过来的member的指针变量ptr进行后面的操作而非要新创建一个临时指针变量__mptr来进行其他操作?
使用新创建的临时指针变量__mptr有何意义?