gpt4 book ai didi

c - 如何在 union 中找到结构元素的索引作为字节数组的索引(在标准 C 中)

转载 作者:太空宇宙 更新时间:2023-11-03 23:25:52 25 4
gpt4 key购买 nike

我定义了一个结构体和一个 union 体,如下所示:

struct MY_STRUCT
{
int a;
unsigned int x;
char c;
};

union MY_UNION
{
unsigned char myByte[sizeof(struct MY_STRUCT)];
struct MY_STRUCT myStruct;
};

我如何在 myByte[] 数组中动态找到 myStruct.x 的位置(索引)?

最佳答案

由于myStrunctmyByte的首字节地址相同,可以使用offsetof运营商:

size_t offset = offsetof(MY_STRUCT, x);
MY_UNION u;
unsigned char *ptr = &u.myByte[offset];

请注意,这不是动态完成的:offsetof 是在编译时静态计算的。

关于c - 如何在 union 中找到结构元素的索引作为字节数组的索引(在标准 C 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578549/

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