Идентификатор макроса необъявленный, даже если он объявлен - PullRequest
0 голосов
/ 14 апреля 2020

У меня появляется эта ошибка, когда я пытаюсь скомпилировать мой 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 определяется.

1 Ответ

3 голосов
/ 14 апреля 2020

Функциональные макросы должны использоваться как функции, с круглыми скобками и всеми.

Так что если у вас есть макрос типа

#define someGetFunctionMacro()      someGetFunction(param1)

, вы должны"вызвать "это как функция с круглыми скобками.

В определении макроса someGetFunctionMacroA вы неправильно используете someGetFunctionMacro.

...