如果我创建一个const联合对象(例如在下面的代码中),那么就不能在那里完成任何成员赋值。那么在任何情况下都有使用const union对象吗?
union un
{
int i;
float f;
char c;
};
const union un a;
/// ! a.i = 10; error.
答案 0 :(得分:34)
您仍然可以按如下方式初始化联合:
const union un a = { .i = 100 };
然后在你的代码中使用它。
答案 1 :(得分:15)
你仍然可以在声明时分配它,例如:
const union un a = {0};
更新:该表示法设置了联盟成员的第一个。