My compiler raises the warning #381-D: extra ";" ignored
in such a situation:
I have a struct defined, like the following
struct example_s
{
u8_t foo;
SOME_MACRO(bar);
};
The macro SOME_MACRO(x)
does the following:
#if defined(SYSTEM_A)
#define SOME_MACRO(x) u16_t x##something
#else
#define SOME_MACRO(x) /* nothing */
#endif
Of course, the warning is correct, when SYSTEM_A
is not defined. Simply because I have now a ;
within the struct. But does someone know a way to avoid it correctly? I don't want to break the typical C-style by moving the ;
into the macro.
You can add an unnamed 0-width bitfield instead: