宏标识符未声明,即使已声明

Macro identifier undeclared even if it is declared

当我尝试编译我的 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)

必须"call"它就像一个带括号的函数。

someGetFunctionMacroA 宏定义中,您没有正确使用 someGetFunctionMacro