#ifdef和#if defined的异同
来源:互联网 发布:js多选框 编辑:程序博客网 时间:2024/06/10 22:24
最近在看代码时发现使用宏控时既有用#ifdef MACRO,也有的用#if defined(MACRO),那么两者之间到底是什么关系呢,是不是一样的?仔细查了一下,发现有相同亦有不同之处:
#ifdef MACRO和#if defined(MACRO)都是预处理运算符
对于判断单个情况下两者是相同的,比如:
#ifdef MACRO== #if defined(MACRO)
#ifndef MACRO== #if !defined(MACRO)
而在需要复杂的编译条件情况下#if defined(MACRO)的优势就很明显了:
情况一:表达式形式
#if defined(MACRO1) && defined(MACRO2) && defined(MACRO3)......
......
#endif
如果你不怕麻烦也可以这样使用
#ifdef MACRO1
#ifdef MACRO2
#ifdef MACRO3
......
#endif
#endif
#endif
而
#if defined(MACRO1) || defined(MACRO2) || defined(MACRO3)......
......
#endif
这种情况就不能用#ifdef代替了
情况二:多条件选择情况下两者的使用方式
前者
#ifdef MACRO1
......
#else
......
#endif
后者
#if defined(MACRO1)
......
#elif defined(MACRO2)
......
#elif defined(MACRO3)
......
#endif
总的来说,#if defined(MACRO)的功能更强大,使用更广泛
- #ifdef和#if defined的异同
- #ifdef 和 #if defined
- #ifdef和#if defined
- #if,#ifdef和#if defined
- #if,#ifdef和#if defined
- #if,#ifdef和#if defined
- #ifdef和#if defined的差别
- #ifdef 和 #if defined 的区别
- #ifdef和#if defined的差别
- #ifdef 和 #if defined 的区别
- #ifdef和#if defined之间的区别
- #ifdef和#if defined的区别
- #ifdef 和 #if defined 的区别
- #if、#ifdef、#if defined之间的区别
- #if、#ifdef、#if defined之间的区别
- #if、#ifdef、#if defined之间的区别
- #if、#ifdef、#if defined之间的区别
- #if、#ifdef、#if defined之间的区别
- Objective-C---2---初始化、便利构造器
- 纯CSS写带边框的三角形
- 关于win8系统安装Mysql数据库出现的问题
- Swift控制转移语句
- Git 使用规范流程
- #ifdef和#if defined的异同
- 牛X素材推荐之StackOverView
- HTTP常见状态码
- ASP.NET基础
- codeforces#321 B(排序+二分)
- unix/linux编程实践教程----I/O重定向和管道
- 重温葫芦娃、、、、、、杂记
- 代码语义化
- python学习(一)