C++ 如何声明位于联合体中且该联合体位于另一个结构体中的结构的变量

C++ 如何声明位于联合体中且该联合体位于另一个结构体中的结构的变量,c++,struct,C++,Struct,示例代码 struct A { union { struct B { short a:1; short b:1; }; }; }; 我想将一个变量声明为结构B的变量。如何才能这样做?标准不允许在匿名联合中使用嵌套类型。你的代码不合法 从C++草案标准N33 37:< /P> 9.5工会 5形式的并集 联合{成员规范} 被称为匿名联盟;它定义了未命名类型的未命名对象。匿名联盟的成员规范只能定义非静态数据成员。[注意:嵌套类型

示例代码

struct A
{

 union
  {

    struct B
    {
     short a:1;
     short b:1;

    }; 

  };


 };

我想将一个变量声明为结构B的变量。如何才能这样做?

标准不允许在匿名联合中使用嵌套类型。你的代码不合法

<>从C++草案标准N33 37:< /P> 9.5工会

5形式的并集

联合{成员规范}

被称为匿名联盟;它定义了未命名类型的未命名对象。匿名联盟的成员规范只能定义非静态数据成员。[注意:嵌套类型和函数不能 在匿名联盟内声明。-结束说明]


当我使用union和structinner作为匿名时,我无法定义变量。。。下面显示的代码是结构A{union{struct{short A:1;short b:1;}two;}one;};当我声明外部结构的变量时,我可以访问union的内部变量以及内部结构。我想直接声明内部结构的变量