cri*_*ell 76 c++ conditional-compilation c-preprocessor
在C++中,是这样的:
#ifdef A && B
Run Code Online (Sandbox Code Playgroud)
同样如下:
#if defined(A) && defined(B)
Run Code Online (Sandbox Code Playgroud)
?
我当时认为它不是,但我无法找到与我的编译器(VS2005)的差异.
Eva*_*ran 81
他们不一样.第一个不起作用(我在gcc 4.4.1中测试过).错误消息是:
test.cc:1:15:警告:#ifdef指令末尾的额外令牌
如果要检查是否定义了多个内容,请使用第二个.
Sve*_*lov 44
您可以使用#if指令中定义的运算符来使用在预处理器行中计算为0或1的表达式.这样可以避免使用嵌套的预处理指令.标识符周围的括号是可选的.例如:
Run Code Online (Sandbox Code Playgroud)#if defined (MAX) && ! defined (MIN)如果不使用已定义的运算符,则必须包含以下两个指令才能执行上述示例:
Run Code Online (Sandbox Code Playgroud)#ifdef max #ifndef min