offsetof偏移量计算
这个偏移量计算如何解释?
#include<stdio.h>
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)
struct mydata{
int num;
char sex;
char name;
};
int main()
{
struct mydata kk;
printf("hello,%d\n", offsetof(struct mydata, name));
return 0;
}
结果:5
大家如何解释 ((size_t) &((TYPE*)0)->MEMBER)?谢谢
[解决办法]
求type类型变量中member成员相对变量起始地址的偏移量。
如果变量的起始地址是0,那么member成员的地址就等于偏移量
[解决办法]
计算MEMBER域在结构体中的偏移量