0

我正在处理一个 struct mf 固定的 char 数组,但其中一些成员的大小和位置取决于其他成员。所以我想使用 __declspec(property) 来动态检索这些“变量”成员

所以理想情况下它看起来像这样:

struct tVariableRecord
{
    char cRecordType;
    union
    {
        struct
        {
            char cRecordType1_Field1[4];
            char cRecordType1_Filler[6];
            char cRecordType1_Field2[6];
            char cCRLF[2];
        };
        struct
        {
            char cRecordType2_Field1[6];
            char cRecordType2_Field2[6];
            char cCRLF[2];
        };
    }
    __declspec(property(get=get_Field2))   char cField2[6];
    char [6]&get_Field2()
    {
        static char cBadField2[6] = { '#', '#', '#', '#', '#', '#' };
        switch (cRecordType)
        {
            case '1':
                return cRecordType1_Field2;
                break;
            case '2':
                return cRecordType2_Field2;
                break;
            default:
               throw(unknownRecordType);
               return cBadField2;
               break;
         }
    }
};

我知道上述方法行不通,但是有没有办法做同样的事情?

4

0 回答 0