一种检查预处理器符号是否已定义但为空的方法?

时间:2019-06-05 12:13:22

标签: c c-preprocessor

是否可以检查预处理器符号是否已定义但没有值

考虑以下代码:

#if defined( FOO )
  #if FOO == 1
    #error FOO defined to 1.
  #else
    #error FOO defined to other value than 1.
  #endif
#else
  #error FOO undefined
#endif

int main() {}

按原样,这将给出:

error: #error FOO undefined

如果我在顶部添加#define FOO 1,则会得到:

error: #error FOO defined to 1.

到目前为止,太好了。 但是,当我将其更改为#define FOO时(即定义 FOO,但未将其定义为 ),我得到:

error: operator '==' has no left operand

是否可以检查预处理器符号是否已定义但没有值

0 个答案:

没有答案