我正在努力让x宏与0一起工作,因为checkpatch.pl对此感到不满意。但是,它打破了逻辑。想知道是否有人有任何建议让它发挥作用?
#define X_TYPES do { \
X(BABA, "baba") \
X(INVALID, "invalid") \
} while (0)
#define X(type, name) type,
enum x_type {
X_TYPES
};
#undef X
#define X(type, name) name,
const char *x_name[] = {
X_TYPES
};
#undef X
int main()
{
return 0;
}
答案 0 :(得分:1)
你不能用do while(0)
包装X宏,因为它在语法上对于它的目标枚举用例是不正确的。
在您的检查程序脚本中寻找异常机制,或将X宏放入一个不被检查的单独源文件中。