如何从结构体的成员地址获取结构体的起始地址

2024-04-05

在C语言中,如何从结构体的成员地址获取结构体的起始地址?

struct type1 {
    //...
    int member1;
    //...
};
struct type1 obj1;

And ptr1是会员的地址member1 in obj1,如何定义
macro #define start_add(ptr1, type1, member1)获取 obj1 的
起始地址?


您可以使用以下方法执行此操作offsetof http://en.wikipedia.org/wiki/Offsetof:

#define start_add(ptr1, type1, member1) ((type1 *)((char *)(ptr1) - offsetof(type1, member1)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从结构体的成员地址获取结构体的起始地址 的相关文章

随机推荐