31

如果我创建了一个 const union 对象(例如在下面的代码中),则无法在其中完成任何成员分配。那么在任何情况下都可以使用 const union 对象吗?

union un
{
    int i;
    float f;
    char c;
};
const union un a; 
/// ! a.i = 10; error.
4

2 回答 2

35

您仍然可以按如下方式初始化联合:

const union un a = { .i = 100 }; 

然后在您的代码中使用它。

于 2012-08-10T08:12:04.893 回答
15

您仍然可以在声明时分配它,例如:

const union un a = {0};

更新:该符号设置了工会成员中的第一个。

于 2012-08-10T08:12:38.587 回答