GCC中的枚举器属性

GCC的在线文档声称它支持枚举器属性:

GCC允许在枚举器上设置属性。

然后它给出了使用这些属性的代码示例:

enum E { oldval __attribute__((deprecated)), newval }; int fn (void) { return oldval; } 

但是当我在我的GCC(4.8.4)上尝试它时,我收到一个错误:

 tc:2:15: error: expected ',' or '}' before '__attribute__' oldval __attribute__((deprecated)), ^ 

我需要在某个地方启用它们吗? 或者使用不同的GCC?

请注意,Clang也声称支持这个C扩展,但是使用Clang它可以正常工作。

您正在查看的文档是指最新的开发分支,但如果我们转到gcc在线文档并查看gcc 5.2手册 ,这是最新版本,我们看不到枚举器属性部分。 这解释了为什么它的这个特性适用于gcc的头版本而不是旧版本。

所以这是一个相对较新的function,仅在头部分支中可用,并且不是任何其他版本的一部分(尚未)。 clang似乎在3.0中一直支持这一点 。