learning offsetof func
C 库宏 offsetof(type, member-designator) 会生成一个类型为 size_t 的整型常量,
它是一个结构成员相对于结构开头的字节偏移量。
成员是由 member-designator 给定的,结构的名称是在 type 中给定的。
- type -- 这是一个 class 类型,其中,member-designator 是一个有效的成员指示器。
- member-designator -- 这是一个 class 类型的成员指示器。
#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
浙公网安备 33010602011771号