0
点赞
收藏
分享

微信扫一扫

【C语言】宏实现offsetof

芒果六斤半 2022-04-17 阅读 46
c语言

目录

一、offsetof的用法

二、宏实现

三、测试代码

 


一、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;
}

 

举报

相关推荐

0 条评论