小编Mit*_*tch的帖子

C枚举不同的编译器

我正在构建一个需要在Windows和Linux上编译的应用程序.该应用程序是用C语言编写的,除了MinGW编译器拒绝这一点外,几乎所有工作都有效

typedef struct somestruct{
   ...snip...
   enum {NODE, REAL} type;
};

somestruct* something;
switch (something->type){
 case NODE:
   ...stuff...;
   break;
 case REAL:
   ...otherstuff...;
   break;
}
Run Code Online (Sandbox Code Playgroud)

它说NODE和REAL没有定义,但如果我提供范围分辨率

case somestruct::NODE
Run Code Online (Sandbox Code Playgroud)

这与MinGW 3.4.1编译,但无法在linux上使用gcc 4.1.2进行编译.这只是一个需要用预处理器解决的编译器问题还是有其他解释?

c c++ enums gcc mingw

1
推荐指数
1
解决办法
1024
查看次数

标签 统计

c ×1

c++ ×1

enums ×1

gcc ×1

mingw ×1