typedef struct guhuo
{
int a;
char c;
int b;
}zqy;
zqy *pp;
typeof(pp->b) a; OK
#define typez(type,mem) typeof(type->mem)
typez(pp,b) OK
#define list_entry(ptr, type, member) /
container_of(ptr, type, member)
define typez(type,mem) typeof( ((type*)0) ->mem)
typez( zqy,b)a; OK 可以用结构体名
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#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) );})
{
int a;
char c;
int b;
}zqy;
zqy *pp;
typeof(pp->b) a; OK
#define typez(type,mem) typeof(type->mem)
typez(pp,b) OK
#define list_entry(ptr, type, member) /
container_of(ptr, type, member)
define typez(type,mem) typeof( ((type*)0) ->mem)
typez( zqy,b)a; OK 可以用结构体名
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#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) );})