2014-05-01 108 views
1

我有以下枚举: atttribute((能见度( “默认”)))枚举味精 { OK, FAIL, };我可以在枚举上使用gcc可见性属性吗?

当我编译,它给我的警告:

警告:属性在“枚举味精” 警告声明忽略;“枚举味精”必须遵循“枚举”属性关键字

时我把属性枚举后,我得到了以下错误:

警告:类型属性只在类型定义荣幸 错误:使用枚举“味精”没有先前声明 错误:之前预期不合格的ID“{”代币

谁能告诉我如何解决这个问题?

+0

你能否包含实际的源代码片段?更改枚举*类型*的可见性是没有意义的。它不是一个符号(如函数或变量)。 –

+0

这里是我的枚举定义: '__attribute__((能见度( “默认”)))枚举味精 { OK, FAIL, };' – Monku

回答

0

可见性属性适用于符号类似于函数和变量。不包含变量名称的枚举类型的定义不会创建任何符号。没有变量

枚举类型:

enum msg { OK, FAIL }; 

枚举变量:具有可变

enum msg message; 

枚举类型一起:

enum msg { OK, FAIL } message; 

在第一种情况下,没有符号可见性属性可能完全影响。