C++ 编程
外观
union 关键字用于定义联合类型。
- 语法
union union-name
{
public-members-list;
private:
private-members-list;
} object-list;
联合类似于 struct
(比 class
更类似),联合在内存中共享相同位置的字段,并且默认情况下是 public
而不是 private
。union
的大小是其最大字段的大小(如果对齐需要,则更大,例如在 SPARC 机器上,union
包含一个 double
和一个 char [17]
,因此其大小可能为 24,因为它需要 64 位对齐)。联合不能具有 destructor
。
这是什么意思?联合提供了多种查看相同内存位置的方法,从而可以更有效地使用内存。大多数联合的使用都被 C++ 的面向对象特性所涵盖,因此它在 C 中更常见。但是,有时在性能很重要或当知道所讨论的项目不会被扩展时,避免面向对象编程的形式主义会很方便。
union Data {
int i;
char c;
};
union
的使用在联合部分中进行了更详细的介绍。