有关enum的奇怪异常,问了N多人都没能解决
有关enum的奇怪错误,问了N多人都没能解决
typedef DataItem <char, unsigned> Reg;
enum DI_ACTION {READ, WRITE}; // line of 16
enum DI_ERROR {NOERROR, TIMEOUT, BREAKDOWN, NOTOPEN};
g:\power\power\meter.h(16) : error C2143: 语法错误: 缺少“}”(在“常量”的前面)
g:\power\power\meter.h(16) : error C2143: 语法错误: 缺少“;”(在“}”的前面)
g:\power\power\meter.h(16) : error C2059: 语法错误: “}”
刚开始以为是空白符中有汉字的原因,但是我把它们复制到一个hello world代码里面,用G++和VS2005的CL编译,都能通过。又把它它们复制到记事本、word再复制回来,还是不行。
真要怀疑是vs2005的BUG了!我的已经打了SP1补丁
------解决方案--------------------
enum DI_ACTION {READ1, WRITE1} ;
enum DI_ERROR {NOERROR1, TIMEOUT1, BREAKDOWN1, NOTOPEN1};
--
好像就没问题了
------解决方案--------------------
//typedef DataItem <char, unsigned> Reg;
enum DI_ACTION {READ, WRITE};// line of 16
enum DI_ERROR {NOERROR1, TIMEOUT1, BREAKDOWN1, NOTOPEN1};
同意he_zhidan,这样修改,就没有问题。
------解决方案--------------------
估计宏定义名字和系统冲突了,前两天刚遇到过这个问题
typedef DataItem <char, unsigned> Reg;
enum DI_ACTION {READ, WRITE}; // line of 16
enum DI_ERROR {NOERROR, TIMEOUT, BREAKDOWN, NOTOPEN};
g:\power\power\meter.h(16) : error C2143: 语法错误: 缺少“}”(在“常量”的前面)
g:\power\power\meter.h(16) : error C2143: 语法错误: 缺少“;”(在“}”的前面)
g:\power\power\meter.h(16) : error C2059: 语法错误: “}”
刚开始以为是空白符中有汉字的原因,但是我把它们复制到一个hello world代码里面,用G++和VS2005的CL编译,都能通过。又把它它们复制到记事本、word再复制回来,还是不行。
真要怀疑是vs2005的BUG了!我的已经打了SP1补丁
------解决方案--------------------
enum DI_ACTION {READ1, WRITE1} ;
enum DI_ERROR {NOERROR1, TIMEOUT1, BREAKDOWN1, NOTOPEN1};
--
好像就没问题了
------解决方案--------------------
//typedef DataItem <char, unsigned> Reg;
enum DI_ACTION {READ, WRITE};// line of 16
enum DI_ERROR {NOERROR1, TIMEOUT1, BREAKDOWN1, NOTOPEN1};
同意he_zhidan,这样修改,就没有问题。
------解决方案--------------------
估计宏定义名字和系统冲突了,前两天刚遇到过这个问题