如何从它的成员的地址结构的起始地址 [英] how to get struct's start address from its member's address
本文介绍了如何从它的成员的地址结构的起始地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在C语言中,如何从它的成员的地址得到结构的起始地址?
In C language, how to get struct's start address from its member's address?
struct type1 {
//...
int member1;
//...
};
struct type1 obj1;
和 ptr1的
为成员 member1中
在 OBJ1 $ C $地址C>,如何界定结果
宏的#define start_add(ptr1的,TYPE1,member1中)
来得到OBJ1的结果
起始地址?
And ptr1
is the address of member member1
in obj1
, how to define
macro #define start_add(ptr1, type1, member1)
to get obj1's
start address?
推荐答案
您可以做到这一点使用 offsetof
:
You can do this using offsetof
:
#define start_add(ptr1, type1, member1) ((type1 *)((char *)(ptr1) - offsetof(type1, member1)))
这篇关于如何从它的成员的地址结构的起始地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文