工会是否有控制结构来测试当前正在使用哪个成员(或者它是否有任何成员)?我问这个是因为未定义的行为在你的程序中永远不是一件好事。
答案 0 :(得分:12)
不,现有的机制不存在。你必须自己照顾好自己。
通常的方法是将union
包裹在struct
:
struct MyUnion
{
int whichMember;
union {
//whatever
} actualUnion;
};
所以你有MyUnion x;
和x.whichMember
告诉你x.actualUnion
的哪个字段正在使用中(你必须实现这个功能)。