这是我要使用的宏,如果定义了 X_DEFINED
,它将被评估为 DEFAULT_X,否则它将被评估为 x
#define GET_X(x) (defined(X_DEFINED) ? DEFAULT_X : x)
编译失败,报错
error: 'X_DEFINED' was not declared in this scope
有什么建议吗?我希望能够根据是否定义了 X_DEFINED
最佳答案
defined()
仅适用于 #if
和类似的预处理器指令。
你想要这样的东西:
#ifdef X_DEFINED
#define GET_X(x) DEFAULT_X
#else
#define GET_X(x) x
#endif
关于c++ - 用 defined(X) 定义一个宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56043930/