1

我在定义联合时收到语法错误“无法解析类型 XXX”,并且此错误不会出现在 VC++ 等其他 IDE 上。例如,联合定义如下:

typedef union{
    struct {
    int data1;
    int data2;
    int data3;
    } dataField;
    int dataBuffer[sizeof(dataField)];
};

发生语法错误。

type 'dataField' could not be resolved

通过谷歌搜索,我发现原因可能是 eclipse CDT 和其他 IDE 使用的索引器之间的差异。但是,此代码仍然编译没有错误。有人可以给出更具体的建议来处理此错误消息吗?谢谢。

4

1 回答 1

0

怎么样:

typedef struct
{
   int data1;
   int data2;
   int data3;
} MyData;

typedef union
{
   MyData dataField;
   int dataBuffer[sizeof(MyData)];
} MyUnion;

不确定,但也许这会起作用:

typedef union
{
   struct DataStruct
   {
      int data1;
      int data2;
      int data3;
   } dataField;
   int dataBuffer[sizeof(struct DataStruct)];
};
于 2012-12-28T11:17:23.680 回答