美文网首页
常用的编译宏定义:可以让代码在不同的编译情况下执行。

常用的编译宏定义:可以让代码在不同的编译情况下执行。

作者: 单手三万行无bug | 来源:发表于2016-03-22 14:55 被阅读540次

(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{

//否则执行这里

}

【16】预编译宏 #ifdef    #else  #endif

#ifdef ****

//代码1

else

//代码2

#endif

意思是 如果标识符****已被#define命令定义过,则对代码1进行编译,否则对代码2进行编译。

同时也有#ifndef,则与#ifdef刚好相反。

相关文章

网友评论

      本文标题:常用的编译宏定义:可以让代码在不同的编译情况下执行。

      本文链接:https://www.haomeiwen.com/subject/eyhllttx.html