该宏用于求结构体中一个成员在该结构体中的偏移量。
该宏被写作:
size_t offsetof( structName, memberName );
第一个参数是结构体的名字,
第二个参数是结构体成员的名字。
该宏返回结构体structName中成员memberName的偏移量。
偏移量是size_t类型的。
=========================================================================
#include<stdio.h>
#include<stdlib.h>
#include <stddef.h>//offsetof(type,member);
typedef struct
{
char a;
int b;
int c;
}node_t;
int main()
{
unsigned char *p = NULL;
node_t node;
node.a = 1;
node.b = 22;
node.c = 33;
p = (unsigned char *)&node;
printf("size = %d\n",offsetof(node_t,c));
printf("node.c = %d\n",*(p+offsetof(node_t,c)));
return 1;
}
/*
output:
size = 8
node.c = 33;
*/