常用的编译宏定义:可以让代码在不同的编译情况下执行
Posted 呦呦Code
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的编译宏定义:可以让代码在不同的编译情况下执行相关的知识,希望对你有一定的参考价值。
(1)__OPTIMIZE__ :用于release和debug的判断,当选择了__OPTIMIZE__ 时,可以让代码在release时执行,在debug时不执行。示例如下:
1
2
3
4
5
|
#ifndef __OPTIMIZE__ //这里执行的是debug模式下 else //这里执行的是release模式下 #endif |
(2)__i386__ 与 __x86_64__ :用于模拟器环境和真机环境的判断。满足该条件的代码只在模拟器下执行。示例代码如下:
1
2
3
4
5
6
7
|
#if defined (__i386__) || defined (__x86_64__) //模拟器下执行 #else //真机下执行 #endif |
(3)__IPHONE_OS_VERSION_MAX_ALLOWED :当前编译的SDK版本,可以与__IPHONE_9_0等宏定义进行比较,进行不同版本下代码的执行。示例如下:
1
2
3
4
5
|
if (__IPHONE_OS_VERSION_MAX_ALLOWED == __IPHONE_9_0) { //如果当前SDK版本为9.0是执行这里的代码 } else { //否则执行这里 } |
【16】预编译宏 #ifdef #else #endif
1
2
3
4
5
|
#ifdef **** //代码1 else //代码2 #endif |
意思是 如果标识符****已被#define命令定义过,则对代码1进行编译,否则对代码2进行编译。
同时也有#ifndef,则与#ifdef刚好相反。
以上是关于常用的编译宏定义:可以让代码在不同的编译情况下执行的主要内容,如果未能解决你的问题,请参考以下文章