Вероятно, идея в том, что вы можете объявить простой макрос, который помогает игнорировать все это в любом другом компиляторе C и C ++.Если у вас не будет второй пары круглых скобок, этот макрос обязательно будет с ...
.Так что для компиляторов, которые не поддерживают, вы были бы испорчены.
Редактировать: С этим синтаксисом он может просто выглядеть как
#ifdef __GNUC__
# define attribute(X) __attribute__(X)
#else
# define attribute(X)
#endif
, и тогда вы будете использоватьattribute
для ваших объявлений функций, например