错误:在“__attribute__”之前预期的primary-expression;错误:预期';'在“__attribute__”之前

时间:2012-11-02 03:02:23

标签: c

我正在Solaris 10 for x86上编译C程序,代码是:

#if defined (__GNUC_MINOR__)&&2093<=(__GNUC__*1000+__GNUC_MINOR__) __attribute__ ((__unused__))
#endif

当我编译它时,我收到错误消息:

error: expected primary-expression before "__attribute__"; error: expected ';' before "__attribute__"

出了什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:2)

这需要分布在3行:

#if defined (__GNUC_MINOR__)&&2093<=(__GNUC__*1000+__GNUC_MINOR__)
 __attribute__ ((__unused__))
#endif

这测试您是否使用合适版本的GCC(基于GCC版本号),如果是,则为这些行之前的任何内容生成unused属性注释。

正如所写,表达完全无效; Solaris上的C预处理器可能看到了:

#if defined(__GNUC_MINOR__) && 2093 <= (0*1000+0) 0 ((0))

根本不是有效的表达。