iOS 巧妙使用编译宏定义让代码在不同的情况下执行
2017-03-07 07:23
597 查看
关于预编译宏 #ifdef #else #endif
意思是 如果标识符****flag已被#define命令定义过,则对代码1进行编译,否则对代码2进行编译。
同时也有#ifndef,则与#ifdef刚好相反。
(1)OPTIMIZE :
用于release和debug的判断,当选择了OPTIMIZE 时,可以让代码在release时执行,在debug时不执行。
示例如下:
(2)i386 与 x86_64 :用于模拟器环境和真机环境的判断。满足该条件的代码只在模拟器下执行。示例代码如下:
(3)__IPHONE_OS_VERSION_MAX_ALLOWED :当前编译的SDK版本,可以与__IPHONE_9_0等宏定义进行比较,进行不同版本下代码的执行。示例如下:
#ifdef ****flag //代码1 else //代码2 #endif
意思是 如果标识符****flag已被#define命令定义过,则对代码1进行编译,否则对代码2进行编译。
同时也有#ifndef,则与#ifdef刚好相反。
(1)OPTIMIZE :
用于release和debug的判断,当选择了OPTIMIZE 时,可以让代码在release时执行,在debug时不执行。
示例如下:
#ifndef __OPTIMIZE__ //这里执行的是debug模式下 else //这里执行的是release模式下 #endif
(2)i386 与 x86_64 :用于模拟器环境和真机环境的判断。满足该条件的代码只在模拟器下执行。示例代码如下:
#if defined (__i386__) || defined (__x86_64__) //模拟器下执行 #else //真机下执行 #endif
(3)__IPHONE_OS_VERSION_MAX_ALLOWED :当前编译的SDK版本,可以与__IPHONE_9_0等宏定义进行比较,进行不同版本下代码的执行。示例如下:
if (__IPHONE_OS_VERSION_MAX_ALLOWED == __IPHONE_9_0) { //如果当前SDK版本为9.0是执行这里的代码 } else { //否则执行这里 }
相关文章推荐
- iOS开发3- 巧妙使用编译宏定义让代码在不同的情况下执行
- 常用的编译宏定义:可以让代码在不同的编译情况下执行
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- IronPython系列:使用CodeDom动态地编译执行代码
- “不安全代码只会在使用/unsafe编译的情况下出现“
- 不安全代码只会在使用/unsafe编译的情况下出现
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 不安全代码只会在使用/unsafe编译的情况下出现 .net问题
- “不安全代码只会在使用/unsafe编译的情况下出现“
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 不安全代码只会在使用/unsafe编译的情况下出现
- 不安全代码只会在使用 /unsafe 编译的情况下出现
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计
- 两个按钮执行同一事件方法但执行不同代码的使用
- 使用C++模板和不使用C++模板两种情况中的执行代码大小近似估计