写一个宏计算结构体中某变量相对于起始位置的偏移量
offsetof函数
offsetof函数返回type类型member相对于起始位置的偏移量。
运行结果可以参考结构体内存对齐相关内容
宏实现
题解
代码及运行结果
#define OFFSETOF(type,member) (int)&(((type*)0)->member)
//在0处放一个结构体,把0当一个结构体地址
struct s
{
char a;
int b;
double c;
};
int main()
{
printf("%d\n", OFFSETOF(struct s, a));
printf("%d\n", OFFSETOF(struct s, b));
printf("%d\n", OFFSETOF(struct s, c));
return 0;
}