gpt4 book ai didi

c - 这里 union 内部结构的目的是什么?

转载 作者:太空狗 更新时间:2023-10-29 15:40:18 26 4
gpt4 key购买 nike

typedef struct {
union {
u32 slock;
struct __raw_tickets {
#ifdef __ARMEB__
u16 next;
u16 owner;
#else
u16 owner;
u16 next;
#endif
} tickets;
};
} arch_spinlock_t;

以上是Linux内核的代码片段,将整个union放在结构体中的目的是什么,那为什么不简单地使用union呢?

这是 link到源代码。

最佳答案

Linux 内核是一个正在进行的工作,而不是“看看它应该如何完成”的事情。

我相信这背后没有真正的原因,除了习惯将所有内容打包在顶层的 struct 中。如果您曾经认为“一切都是 struct”,您可能会意外地向实际的 union 添加一些新字段而不是 struct,如您所料。

关于c - 这里 union 内部结构的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34433681/

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