在定义union时,在eclipse CDT中获取语法错误“无法解析XXX”

时间:2012-12-24 07:32:42

标签: c eclipse eclipse-cdt

我在定义union时遇到语法错误“类型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使用的索引器之间的区别。但是,此代码仍然编译没有错误。 有人可以提出更具体的建议来处理此错误消息吗? 感谢。

1 个答案:

答案 0 :(得分: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)];
};