我想知道在使用gcc的“__attribute__
”关键字时是否有办法摆脱CDT语法错误警告。
不言而喻,我不想关闭CDT语法检查。
答案 0 :(得分:3)
“ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT”定义(来自 ams 的答案)确实超出了它,并调用__CDT_PARSER__
。例如:
#ifdef __CDT_PARSER__
#define __FILE__ "<file>"
#define __LINE__ (-1)
#define __DATE__ "<date>"
#define __TIME__ "<time>"
#endif // #ifdef __CDT_PARSER__
希望这会有所帮助。
答案 1 :(得分:2)
我没有尝试过,而且我已经有一段时间没用过Eclipse了,但是这里有个想法:
在Eclipse的CDT设置中(或者可能只是你的项目)设置一个预定义的宏(我似乎记得你可以告诉它编译器自动定义的内容)名为__attribute__
的一个参数,并展开没什么。
也许我没有解释说得对。让我再举一个例子。基本上,目标是定义一个像这样工作的宏:
#if ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT
#define __attribute__(X) /* nothing */
#endif
但没有在您的代码中放置任何内容。
答案 2 :(得分:2)
Project->Properties->C/C++ general->Path and Symbols->Symbols
Add->
Name: __attribute__(X)
Value: (leave blank)
相关链接:You can use this technique basically with any offending keyword
答案 3 :(得分:1)
ziu的答案也适用于XC8 Microchip编译器
Name: __interrupt
Value: (leave blank)
现在,函数原型是干净的:
void __interrupt ISRs(void);
Eclipse不会抱怨它。