Union

關鍵字union定義一種特殊的類別,union用足夠的空間來置放多個成員其中的一個,而不是為每一個資料成員配置空間,所以在union中,同時間只能儲存其中一個成員的資料,一個定義union的例子如下:

union UnionTest{
    char m_character;
    intm_integer;
    double m_double;
};

以下我們看union的使用,union配置剛好的空間來容納所有的資料成員,需要最多資源的是double型態,所以UnionTest的空間就是double型態需要的空間。

union UnionTest{
    char m_character;
    int m_integer;
    double m_double;
};

int main(void) {
    Union TestTest;
    Test.m_integer = 1;
    int temp1 = Test.m_integer;    //temp1=1
    Test.m_double = 1.0;
    double temp2 = Test.m_double;  //temp2=1.0
    int temp3 = Test.m_integer;    //由於Test.m_integer的值被洗掉,所以temp3無法得到預期的結果
    return 0;
}