以下の内容はhttps://toburau.hatenablog.jp/entry/20080501/1209661361より取得しました。


共用体

共用体は複数の変数が同じメモリーを共有するもの。

union test {
    int i;
    char c;
}:

int main()
{
    test a;

    a.i = 100;
}

この共用体testの場合、iとcは同じメモリーを使用する。
また、サイズが異なる型の場合は最も大きい種類の分だけメモリーを使用する。この場合int型の4バイトが使用され、cは残り3バイトは使用されない。
共用体はある型のメモリーを別の型で参照したい場合に便利。

#include <iostream>
using namespace std;

union test {
    int i;
    char c[4];
};

int main()
{
    test a;
    a.i = 0x41424344;
    cout << a.c[0] << ' ' << a.c[1] << ' ' << a.c[2] << ' ' << a.c[3];
}

実行結果
D C B A

このようにint型の領域をバイト単位でアクセスしたいときなどに使える。
というか、こういう使い方とメモリーを節約することくらいしか、今のところ使い道を思いつかない。




以上の内容はhttps://toburau.hatenablog.jp/entry/20080501/1209661361より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14