10

工会是否有控制结构来测试当前正在使用哪个成员(或者是否有任何成员)?我问这个是因为未定义的行为在你的程序中从来都不是一件好事。

4

1 回答 1

14

不,不存在现成的这种机制。你必须自己处理。通常的方法是将uniona包装起来struct

struct MyUnion
{
   int whichMember;
   union {
      //whatever
   } actualUnion;
};

因此,您拥有MyUnion x;x.whichMember告诉您x.actualUnion正在使用哪个字段(尽管您必须实现该功能)。

于 2012-06-14T14:43:10.730 回答