gpt4 book ai didi

c - 如何计算 C 中两个不同结构成员之间的偏移量?

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:07 25 4
gpt4 key购买 nike

考虑以下 C 代码:

struct Foo
{
short a;
long b;
char c;
void* d;
};

我知道使用 sizeof 可以知道整个结构的大小。是否有可能知道这个结构的子集的大小,或者(换句话说)知道两个成员之间的距离?我意识到可以根据我想要的偏移量嵌套结构(然后可以使用 sizeof),但是我想知道 a 和 d 之间的字节数?此外,我想在不实例化对象(如 sizeof)的情况下执行此操作。 (我意识到如果我有一个对象,那么我可以查看 foo.d 和 foo.a 之间的地址差异)。这可能吗?

最佳答案

offsetof(Foo, d) - offsetof(Foo, a)

offsetof给你从 Foo 开始的偏移量给指定的成员。

你需要 #include <stddef.h>

关于c - 如何计算 C 中两个不同结构成员之间的偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com