C 为什么我在上行时会出现buildbot错误

C 为什么我在上行时会出现buildbot错误,c,C,我的代码出现以下生成机器人错误。谁能帮我解决这个问题 错误:具有复杂值的宏应括在括号中 我定义一个宏如下,但它给了我上面的错误 #define PIN(index, func1, func2, func3, func4) \ GPIO##index##_ADDR = BASE + (index * 0x100), \ GPIO##index##_FUNC_##func1 = 1, \ GPIO##index##_FUNC_##func2 = 2, \ GPIO##index##_FUNC_##f

我的代码出现以下生成机器人错误。谁能帮我解决这个问题

错误:具有复杂值的宏应括在括号中

我定义一个宏如下,但它给了我上面的错误

#define PIN(index, func1, func2, func3, func4) \
GPIO##index##_ADDR = BASE + (index * 0x100), \
GPIO##index##_FUNC_##func1 = 1, \
GPIO##index##_FUNC_##func2 = 2, \
GPIO##index##_FUNC_##func3 = 3, \
GPIO##index##_FUNC_##func4 = 4

请回答您的问题并添加更多详细信息。添加显示计划如何使用此宏的。什么编译器使用什么设置或什么工具报告此错误消息?(请参阅构建bot的配置。)它可能会进行一些静态代码分析。C语言标准没有为宏定义这样的规则,但建议这样做,因为当用作例如
int x=3*FOO时,例如
#define FOO(3+4)
没有括号,则会导致问题。我想你可能是指
GPIO########u FUNC####1=func1
等。你是否尝试按照建议将替换文本放在括号中?