zoukankan      html  css  js  c++  java
  • C++基础之---union联合体大小分析

    #include <iostream>
    using namespace std;
    union un
    {
    	int a[7];
    	double b;
    	char c[10];
    	int d[3];
    };
    void main()
    {
    	cout<<sizeof(un)<<endl;
    }

    输出为32。

    union(共用体)的各个成员是以同一个地址开始存放的,每一个时刻只可以存储一个成员,这样就要求它在分配内存单元时候要满足两点: 
    1.一般而言,共用体类型实际占用存储空间为其最长的成员所占的存储空间; 
    2.若是该最长的存储空间对其他成员的元类型(如果是数组,取其类型的数据长度,例int a[5]为4)不满足整除关系,该最大空间自动延伸; 

    union un
    {
    	int a[7]; //元长度4
    	double b; //元长度8
    	char c[10]; //元长度1
    	int d[3]; //元长度4
    };

    联合体大小要满足最大元长度的整数倍。

  • 相关阅读:
    字典dict
    数组处理
    switch语句
    java基础复习2
    位运算
    内存中占用的字节
    java基础复习
    常用快捷键
    利用Typora设计博客的方式
    java数据结构-排序算法-堆算法
  • 原文地址:https://www.cnblogs.com/pangblog/p/3306412.html
Copyright © 2011-2022 走看看