C语言实现:offsetof宏的实现
offsetof:求结构体成员的偏移量
直接上代码:
#define OFFSETOF(type,member) ((size_t)(&(((type*)0)->member)))
图解:
图中测试原码:
#include<stdio.h>
#define OFFSETOF(type,member) ((size_t)(&(((type*)0)->member)))
//写一个宏,计算结构体中某变量相对于首地址的偏移
struct student
{
char name[10];
double score;
int age;
};
int main()
{
printf("%u\n",OFFSETOF(struct student, age));
return 0;
}