zoukankan      html  css  js  c++  java
  • C++ 联合体Union学习

    https://www.cnblogs.com/fengty90/p/3768840.html

    1.Union

    当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。

    • 1)联合体是一个结构;
    • 2)它的所有成员相对于基地址的偏移量都为0
    • 3)此结构空间要大到足够容纳最"宽"的成员;
    • 4)其对齐方式要适合其中所有的成员;
    #include<iostream>
    using namespace std;
    
    union U1
    {
        int n;
        char s[11];
        double d;
    };
    union U2
    {
        int n;
        char s[5];
        double d;
    };
    int main()
    {
        U1 u1;
        U2 u2;
        cout<<sizeof(u1)<<'	'<<sizeof(u2)<<endl;
        cout<<"u1各数据地址:
    "<<&u1<<'	'<<&u1.d<<'	'<<&u1.s<<'	'<<&u1.n<<endl;
        cout<<"u2各数据地址:
    "<<&u2<<'	'<<&u2.d<<'	'<<&u2.s<<'	'<<&u2.n<<endl;
    }

    输出:

    16    8
    u1各数据地址:
    0x74fe10    0x74fe10    0x74fe10    0x74fe10
    u2各数据地址:
    0x74fe08    0x74fe08    0x74fe08    0x74fe08

    可以发现u1和u2对象的地址,就是首个元素的地址,并且所有元素的地址都相同!

    SGI STL的二级空间配置器的free list用到了它。

    https://www.cnblogs.com/fengty90/p/3768840.html

  • 相关阅读:
    xplan.sql(本脚本获取执行计划显示执行顺序)
    闪回查询(SELECT AS OF)
    闪回事务查询
    闪回版本查询
    闪回数据库
    shell循环语句
    前后端交互json字符串
    element vuex 语音播报
    highcharts中数据列点击事件
    highcharts为X轴标签添加链接
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/14856430.html
Copyright © 2011-2022 走看看