Мой компилятор поднимает предупреждение #381-D: extra ";" ignored
в такой ситуации:Предупреждение: «экстра, игнорировали» с помощью C макросов с ARMCC
У меня есть-структуру, определенную, как следующий
struct example_s
{
u8_t foo;
SOME_MACRO(bar);
};
Макрос SOME_MACRO(x)
выполняет следующие действия:
#if defined(SYSTEM_A)
#define SOME_MACRO(x) u16_t x##something
#else
#define SOME_MACRO(x) /* nothing */
#endif
конечно, предупреждение является правильным, когда SYSTEM_A
не определен. Просто потому, что у меня теперь есть ;
внутри структуры. Но знает ли кто-нибудь способ избежать этого правильно? Я не хочу нарушать типичный стиль C, перемещая ;
в макрос.
Это работает отлично, используя ARMCC, thx – daniel