我想定义宏,基于某些条件(存在#define INITED
,而不是宏的参数)将返回值,或生成编译器的错误,例如:
#error Not initialized!
我试过(对于myIdea.h
):
#ifdef INITED
#define MyMacro(x) x->method(); //something with x
#else
#define MyMacro(x) #error Not initalized!
#endif
但是该代码会产生错误(不是我想要的)expected macro format parameter
。
请注意,我不想要该代码(工作,但做一些不同的事情):
#ifdef INITED
#define MyMacro(x) x->method(); //something with x
#else
#error Not initalized!
#endif
上面的代码将在未定义 INITED 时产生错误。我只想在调用MyMacro()
AND INITED has not been defined时生成错误。
我不是第一个代码的奴隶,但我希望结果完全按照我上面描述的方式工作(在调用宏MyMacro IF 常量未定义时生成错误)。