目录
一、offsetof的用法
用法:用于计算某结构体中的成员偏移量
#include <stdio.h>
struct Stu
{
int a; // 偏移量0
char b;// 偏移量4
int c;// 偏移量8
};
int main()
{
printf("%d\n", offsetof(struct Stu, c)); // 打印成员c的偏移量8
return 0;
}
二、宏实现
想办法用宏来计算结构体中的成员偏移量
#define OFFSETOF(st_type, mem_name) (size_t)&(((st_type*)0)->mem_name)
三、测试代码
#include <stdio.h>
struct Stu
{
int a;
char b;
int c;
};
#define OFFSETOF(st_type, mem_name) (size_t)&(((st_type*)0)->mem_name)
int main()
{
printf("%d\n", OFFSETOF(struct Stu, c)); // 打印 8
return 0;
}