gpt4 book ai didi

C - 为什么将结构放在 union 中?

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

例如,此代码来自 USB 设备的固件:

typedef union HID_CONTROLS_TYPEDEF
{
struct
{
BYTE B1:1; //buttons
BYTE B2:1;
BYTE B3:1;
BYTE B4:1;
BYTE B5:1;
BYTE B6:1;
BYTE Bpad:2; //filler
} buttons;
} HID_CONTROLS;

为什么struct在union里面,这会有什么影响?它不能作为结构体工作吗?

最佳答案

在这种情况下,你是对的,它是多余的。

然而,在过去的某个时候,union 可能还携带了一个 8 位的 char,以便于映射。

或者他们认为将来可能。

那是我的猜测,我强调,这只是一个猜测。然而,这只是其背后的原因,而且是一个受过良好教育的人的猜测。

struct 的多余性 (?) 是给定的,而不是猜测。

关于C - 为什么将结构放在 union 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22785363/

24 4 0