【发布时间】:2013-09-04 10:25:02
【问题描述】:
在这种情况下,我的编译器会发出警告 #381-D: extra ";" ignored:
我定义了一个结构,如下所示
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 风格。
【问题讨论】: