是否可以检查预处理器符号是否已定义但没有值?
考虑以下代码:
#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
是否可以检查预处理器符号是否已定义但没有值?