C 库宏 offsetof(type, member-designator) 会生成一个类型为 size_t 的整型常量,
它是一个结构成员相对于结构开头的字节偏移量。
成员是由 member-designator 给定的,结构的名称是在 type 中给定的。
#include <stddef.h>
#include <stdio.h>
struct address{
char name[50];
char street[50];
int phone;
};
int main(){
printf("in struct address, name offset %ld bytes\n", offsetof(struct address, name));
printf("in struct address, street offset %ld bytes\n", offsetof(struct address, street));
printf("in struct address, phone offset %ld bytes\n", offsetof(struct address, phone));
return 0;
}
result:
./a.out in struct address, name offset 0 bytes in struct address, street offset 50 bytes in struct address, phone offset 100 bytes
原文:https://www.cnblogs.com/lianghong881018/p/12191791.html