首页 > 代码库 > 【ThinkingInC++】14、联合体使用

【ThinkingInC++】14、联合体使用

/**
* 功能:联合体使用
* 时间:2014年8月13日08:55:39
* 作者:cutter_point
*/

#include<iostream>
#include<stdlib.h>

using namespace std;

union Packed
{
    char i;
    short j;
    int k;
    long l;
    float f;
    double d;   //这个联合体会用里面最大的变量需求的空间作为联合体的空间
    //这里联合体的空间大小是double的大小
};

int main()
{
    cout<<"sizeof(char)="<<sizeof(char)<<endl;
    cout<<"sizeof(short)="<<sizeof(short)<<endl;
    cout<<"sizeof(int)="<<sizeof(int)<<endl;
    cout<<"sizeof(long)="<<sizeof(long)<<endl;
    cout<<"sizeof(float)="<<sizeof(float)<<endl;
    cout<<"sizeof(double)="<<sizeof(double)<<endl;
    cout<<"-----------------------------------------------------------------------"<<endl;
    cout<<"sizeof(Packed)="
        <<sizeof(Packed)<<endl;

    Packed x;
    x.i='c';
    cout<<"x.i='c';sizeof(x.i)="<<sizeof(x.i)<<"\tx.i="<<x.i<<endl;

    x.d=3.1415926;
    cout<<"x.d=3.1415926;;sizeof(x.d)="<<sizeof(x.d)<<"\tx.d="<<x.d<<endl;

    cout<<"-----------------------------------------------------------------------"<<endl;
    cout<<"x.i="<<x.i<<endl;

    system("pause");
    return 0;
}