如何使用命名的联合或结构作为匿名

时间:2014-08-02 12:03:31

标签: c++

我有一些代码,我将union定义为:

  union myP{    
    ptr addr;
    hGeneric* hGenericP;
  };

我需要在结构中使用上面的联合,但是作为一个未命名的联合,就像我写的那样:

  struct XXXX{
    union{
      ptr addr;
      hGeneric* hGenericP;
    };
    union{
      Token nextFree;
      ....
    };
  };

实际上我将字段行写在另一个文件中,然后将它们包含在

union myP{  
    #include "fieldsOf_myP"
  };

我需要在结构中使用上面的联合,但是作为一个未命名的联合,就像我写的那样:

  struct XXXX{
    union{
      #include "fieldsOf_myP"
    };
    union{
      Token nextFree;
      ....
    };
  };

这样我的IDE(codeLite)就不会看到这些字段,也不会在代码写入过程中显示它们。有没有办法只编写联合名称并将其用作未命名的?

使用继承工作时,答案是否与我的确切代码相反?

union headP{
            ptr addr;
            hGeneric* hGenericP;
            hVarBase<agu>* hVarP;
            hAggregateBase<Word>* hAggregateP;
            void(*executeFunction)();
};


union vect{
    struct{
        union{
            ptr addr;
            hGeneric* hGenericP;
            hFixBase<agu>*  hFixP;
            hVarBase<agu>* hVarP;
            hAggregateBase<Word>* hAggregateP;
            void(*executeFunction)();
        };

        union{
            Token nextFree;
            struct{
                suWord Class;
                suWord executionLevel:(sWordBits-shortClassBits);
                uint8_t shortClass:shortClassBits;
            };
        };
    };

0 个答案:

没有答案