Что такое замена __attribute__ в стандарте ISO C? - PullRequest
3 голосов
/ 21 сентября 2011

Что такое замена __attribute__ в стандарте ISO C? Я хочу портировать свое программное обеспечение, которое не зависит от компилятора.

Ответы [ 2 ]

4 голосов
/ 21 сентября 2011

Нет ни одного.

Одно из решений - абстрагировать атрибуты макросов. e.g.:

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

...

void function(void) UNUSED;
0 голосов
/ 21 сентября 2011

Нет общей замены широкому спектру средств, которые предлагает это расширение gcc.Большинство других компиляторов, которые не совместимы с gcc, используют #pragma для достижения аналогичных целей.Начиная с C99, C имеет оператор _Pragma, который позволяет вам произносить прагмы в середине вашего кода (не только в правильных строках) и составлять содержимое прагмы с помощью макросов.Но тогда вам все равно придется делать конкретные «переводы» отдельных функций в соответствующий прагматический синтаксис целевого компилятора.

...