0 作用
计算结构体中某个成员的地址偏移量。
1 路径
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
/* Offset of member MEMBER in a struct of type TYPE. */
/* TYPE 类型结构中成员 MEMBER 的偏移量。 */
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
2 示例
#include <stddef.h>
#include <stdio.h>
typedef struct {
unsigned char Member1;
int Member2;
long Member3;
} TypeA;
typedef struct {
unsigned char Member1;
int Member2;
long Member3;
} __attribute__((packed)) TypeB;
int main(void)
{
printf("%ld\n", offsetof(TypeA, Member2));
printf("%ld\n", offsetof(TypeB, Member2));
return 0;
}
3 输出
4
1