关键字:ifdef 逻辑与或 编译预处理
转自:http://blog.chinaunix.net/uid-126438-id-2924676.html
原本用宏定义包起来的代码类似如下:
#ifndef A
// codes
#endif // A
现在要加入一个宏定义 B,实现类似这样的条件判断(而实际上这样是不行的):
#ifndef A && ifdef B
其实应该这样:
#if (!defined A) && (defined B)
// codes
#endif // !A && B
这就修正了之前一直以为的“既生 #ifdef,何生 #if defined”的思维,其实还是有区别的。