#ifdef条件选择应用!
2016-03-24 17:38
253 查看
最近要改后台服务器,因为想着需要三合一程序,所以需要三个宏交替使用。
转载于:http://blog.csdn.net/davidhsing/article/details/8115121
原本用宏定义包起来的代码类似如下:
[cpp] view
plain copy
print?
#ifdef A
//...
#endif // A
现在要加入一个宏定义 B,实现类似这样的条件判断(显然实际上这样是不行的):
[cpp] view
plain copy
print?
#ifdef A && ifdef B
其实应该这样:
[cpp] view
plain copy
print?
#if (defined A) && (defined B)
//...
#endif
“或”的形式是:
[cpp] view
plain copy
print?
#if (!defined A) || (!defined B)
//...
#endif
这就修正了之前一直以为的“既生 #ifdef,何生 #if defined”的思维,其实还是有差别的。
而且,多个 #if 的条件可以外面加括号表示。例如
[cpp] view
plain copy
print?
#if ((defined _UNICODE) && (!defined SA_UNICODE))
#define SA_UNICODE
#endif
转载于:http://blog.csdn.net/davidhsing/article/details/8115121
原本用宏定义包起来的代码类似如下:
[cpp] view
plain copy
print?
#ifdef A
//...
#endif // A
现在要加入一个宏定义 B,实现类似这样的条件判断(显然实际上这样是不行的):
[cpp] view
plain copy
print?
#ifdef A && ifdef B
其实应该这样:
[cpp] view
plain copy
print?
#if (defined A) && (defined B)
//...
#endif
“或”的形式是:
[cpp] view
plain copy
print?
#if (!defined A) || (!defined B)
//...
#endif
这就修正了之前一直以为的“既生 #ifdef,何生 #if defined”的思维,其实还是有差别的。
而且,多个 #if 的条件可以外面加括号表示。例如
[cpp] view
plain copy
print?
#if ((defined _UNICODE) && (!defined SA_UNICODE))
#define SA_UNICODE
#endif
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性