向高手请教这段代码的意思#define LIST_CONTAINOR(ptr,type,member) \((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))不是问宏替换 是问这句((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))的含义

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 02:05:42

向高手请教这段代码的意思#define LIST_CONTAINOR(ptr,type,member) \((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))不是问宏替换 是问这句((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))的含义
向高手请教这段代码的意思
#define LIST_CONTAINOR(ptr,type,member) \
((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))
不是问宏替换
是问这句((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))的含义

向高手请教这段代码的意思#define LIST_CONTAINOR(ptr,type,member) \((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))不是问宏替换 是问这句((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))的含义
struct T
{
int a;
int b;
};
T x;
int *p = *x.b;
T *sp = LIST_CONTAINOR(p,T,b);