3

__attribute__ISO C标准中的替代品是什么?我想移植我的独立于编译器的软件。

4

2 回答 2

4

没有一个。

一种解决方案是抽象宏背后的属性。例如:

#ifdef __GNUC__
#define UNUSED __attribute((unused))__
#else
#define UNUSED
#endif

...

void function(void) UNUSED;
于 2011-09-21T10:39:33.703 回答
0

这个 gcc 扩展提供的广泛的设施没有通用的替代品。大多数其他不兼容 gcc 的编译器#pragma用于实现类似的目标。自 C99 以来,C 具有_Pragma允许您在代码中间(不仅在正确的行上)发出 pragma 并使用宏组合 pragma 的内容的运算符。但是,您仍然必须将各个功能特定“翻译”为目标编译器的相应编译指示语法。

于 2011-09-21T11:55:06.773 回答