什么是ISO C标准中__attribute__的替换?

时间:2011-09-21 10:37:20

标签: c attributes iso

ISO C标准中__attribute__的替代是什么? 我想移植与编译器无关的软件。

2 个答案:

答案 0 :(得分:4)

没有一个。

一种解决方案是抽象宏背后的属性。 e.g:

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

...

void function(void) UNUSED;

答案 1 :(得分:0)

此gcc扩展提供的各种设施没有一般替代品。大多数非gcc兼容的编译器使用#pragma来实现类似的目标。从C99开始,C有_Pragma运算符,允许您在代码中间(不仅在正确的行上)吐出编译指示,并用宏编写编译指示的内容。但是,您仍然需要对目标编译器的相应编译指语语法进行单独功能的特定“翻译”。