这个联盟是什么意思? C ++

时间:2016-02-25 19:29:32

标签: c++ unions

所以我得到了这样一个联盟:

union A
{
    struct{
        SomeType B;
    }b;
    struct{
        SomeType C;
    }c;
}a[2];

那个[2]是什么意思?

3 个答案:

答案 0 :(得分:6)

a A,其大小为union,类型为union A { struct{ SomeType B; }b; struct{ SomeType C; }c; }; A a[2]; ,为Array ( [78445] => Array ( [title] => Never change ) [78441] => Array ( [title] => test 123 ) [78439] => Array ( [title] => test 111 ) [78893] => Array ( [title] => test 222 ) [78893] => Array ( [title] => test 555 ) ) 。对于所有类类型,这都是相同的。

相同
Array
(
    [0] => 78439
    [1] => 78441
    [2] => 78893
    [3] => 78891
)

答案 1 :(得分:2)

此声明

union A
{
    struct{
        SomeType B
    }b;
    struct{
        SomeType C
    }c;
}a[2];

实际上相当于以下两个声明

union A
{
    struct{
        SomeType B
    }b;
    struct{
        SomeType C
    }c;
};

A a[2];

a是由union A类型的两个元素组成的数组。

答案 2 :(得分:0)

a[2]声明变量a,即A类型的数组,其大小为2