#ifdef 如何实现“与或”

原本用宏定义包起来的代码类似如下:

#ifdef A
//...
#endif // A

现在要加入一个宏定义 B,实现类似这样的条件判断(显然实际上这样是不行的):
#ifdef A && ifdef B

其实应该这样:
#if (defined A) && (defined B)
//...
#endif

“或”的形式是:

#if (!defined A) || (!defined B)
    //...
#endif

这就修正了之前一直以为的“既生 #ifdef,何生 #if defined”的思维,其实还是有差别的。

而且,多个 #if  的条件可以外面加括号表示。例如

#if ((defined _UNICODE) && (!defined SA_UNICODE))
    #define SA_UNICODE
#endif



注:本文转载自:http://www.cnblogs.com/peterxiang/archive/2009/04/08/1431863.html

                                    http://wutiam.net/2009/08/logical-and-or-operation-in-ifdef/


你可能感兴趣的:(#ifdef 如何实现“与或”)