466得票17回答
结构体和联合体的区别

有没有一个好的例子可以说明struct和union之间的区别? 基本上我知道struct使用其成员的所有内存,而union使用最大成员的内存空间。在操作系统层面上还有其它的区别吗?

327得票16回答
C和C++中联合体的目的

我以前使用联合体感到很自在;今天当我读到这篇文章后,我感到很震惊,因为我发现这段代码存在风险。union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t...

308得票21回答
为什么我们需要C联合体?

何时应该使用工会?为什么我们需要它们?

199得票5回答
TypeScript有联合类型,那么枚举是否已经过时了?

从TypeScript引入联合类型以来,我想知道是否有任何理由声明枚举类型。考虑以下枚举类型的声明:enum X { A, B, C } var x: X = X.A; 还有一个类似的联合类型声明:type X: "A" | "B" | "C&...

152得票18回答
何时使用联合?它是C语言时代的遗物吗?

我学过联合,但不是很理解。每当我学习C或C++时,都会提到它们(有时只是顺带一提),但很少给出实际的使用例子。在现代(甚至是遗留)情况下,什么时候使用联合会有用呢?我唯一的两个猜测是在编程微处理器时,因为你的可用空间非常有限,或者在开发API(或类似东西)时,你想要强制终端用户一次只拥有几个对...

148得票5回答
访问未激活的联合成员和未定义行为?

我原本认为访问 union 成员变量时,除最后一个已设置的成员外,访问其他成员是未定义行为,但我似乎找不到可靠的参考资料(除了一些回答声称这是未定义行为,但没有任何标准支持)。 因此,这是否为未定义行为?

115得票5回答
可以使用联合体进行类型转换吗?如果不行的话,为什么?

我已经搜索了一段时间,但找不到明确的答案。 很多人说使用联合类型转换是未定义的和不良的做法。为什么会这样呢?我看不出任何原因会导致未定义的行为,因为你写入原始信息的内存不会自己改变(除非它在堆栈上超出作用域,但这不是联合的问题,那将是糟糕的设计)。 人们引用了严格别名规则,但在我看来,这就...

108得票7回答
为什么C++不允许匿名结构体?

一些C++编译器允许使用匿名联合体和结构体,作为标准C++的扩展。这是一种语法糖,有时非常有用。 那么,阻止它成为标准的原理是什么?存在技术障碍吗?哲学上的障碍?还是只是没有足够的需求来证明其必要性? 以下是我所说的示例:struct vector3 { union { str...

99得票2回答
只有一个成员的联合体有什么作用?

当我阅读seastar源代码时,我注意到有一个名为tx_side的联合结构,只有一个成员。这是处理某个问题的一种技巧吗? 供您参考,下面是tx_side结构: union tx_side { tx_side() {} ~tx_side() {} void init(...

94得票9回答
“在非结构体或联合体中请求成员 '*******'”的意思是什么?

这个错误有没有简单的解释?request for member '*******' in something not a structure or union 在我学习C语言的过程中,我遇到了几次这个问题,但我不知道它的含义。