内核源码
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
struct AdvTeacher
{
char name[64];
int age;
char *p;
};
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
void main()
{
int i = 0;
struct AdvTeacher t1;
struct AdvTeacher *p = NULL;
p = &t1;
p->age; p->name; p->p;
i = ((struct AdvTeacher *)0)->name;
printf("i:%d \n", i);
i = (int)(&(((struct AdvTeacher*) 0)->age));
printf("i:%d \n", i);
int offset = offsetof(struct AdvTeacher, age);
printf("i:%d \n", offset);
}