工会是否有控制结构来测试当前使用的成员(或是否根本没有成员)?我之所以问这个问题,是因为未定义的行为对你的程序永远不是好事。
工会是否有控制结构来测试当前使用的成员(或是否根本没有成员)?我之所以问这个问题,是因为未定义的行为对你的程序永远不是好事。
不,没有这样的机制可以直接使用。你需要自己处理这个问题。
通常的做法是将 union
包装在一个 struct
中:
struct MyUnion
{
int whichMember;
union {
//whatever
} actualUnion;
};
你有一个MyUnion x;
,并且x.whichMember
告诉你x.actualUnion
中使用哪个字段(你需要实现这个功能)。