跳转到内容

C++ 编程

来自维基教科书,开放的书籍,为了开放的世界

union 关键字用于定义联合类型。

语法
    union union-name 
    {
        public-members-list;
    private:
        private-members-list;
    } object-list;

联合类似于 struct(比 class 更类似),联合在内存中共享相同位置的字段,并且默认情况下是 public 而不是 privateunion 的大小是其最大字段的大小(如果对齐需要,则更大,例如在 SPARC 机器上,union 包含一个 double 和一个 char [17],因此其大小可能为 24,因为它需要 64 位对齐)。联合不能具有 destructor

这是什么意思?联合提供了多种查看相同内存位置的方法,从而可以更有效地使用内存。大多数联合的使用都被 C++ 的面向对象特性所涵盖,因此它在 C 中更常见。但是,有时在性能很重要或当知道所讨论的项目不会被扩展时,避免面向对象编程的形式主义会很方便。

     union Data {
       int i;
       char c;
     };

union 的使用在联合部分中进行了更详细的介绍。

华夏公益教科书