当我尝试编译C项目时出现此错误。
error #20: identifier "someGetFunctionMacro" is undefined
这出现在我在代码中使用someGetFunctionMacroB()
的行。
variable = someGetFunctionMacroB();
但是这里是someGetFunctionMacroB()
的抽象内容。
#define someGetFunctionMacro() someGetFunction(param1)
#define someGetFunctionMacroA() (someGetFunctionMacro == returnval1 ||\
someGetFunctionMacro == returnval2 ||\
someGetFunctionMacro == returnval3)
#define someGetFunctionMacroB() someGetFunctionMacroC() && (someGetFunctionMacroA() == 1)
我不明白为什么清楚地定义了标识符someGetFunctionMacro
后会出现错误。
类似于函数的宏必须与带有括号和所有字符的函数一起使用。
因此,如果您有类似的宏
#define someGetFunctionMacro() someGetFunction(param1)
您必须像带括号的函数一样“调用”它。
在someGetFunctionMacroA
宏定义中,您没有正确使用someGetFunctionMacro
。