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

(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刚好相反。

时间: 2025-01-17 13:40:53

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

iOS 使用宏定义函数和代码块

iOS使用宏定义函数和代码块 今天在开发过程中碰到一个问题:就是父类中要向外发送通知,然后子类中或者其他类中来接收它.当然一般是把它写到类方法中去,但是有个问题,就是如果调用的类不是它的子类,就不能直接调用,当然也可以采用静态方法实现,我这里主要是想用宏定义来实现,下面我分别介绍使用宏定义函数和定义代码块的方式进行,废话不多说了,直接上代码: 使用宏定义函数实现 //定义 #define SendNotification @"SendNotification" #define send

C中的预编译宏定义

文章来自 http://www.uml.org.cn/c++/200902104.asp 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些过程统统由

常用的颜色宏定义

// 获得当前的版本 #define iOS(version) ([UIDevice currentDevice].systemVersion.doubleValue >= (version)) #define ColorA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)/255.0] #define Color(r, g, b) ColorA((r), (g), (b),

Xcode 工程中添加预编译宏定义

Build Settings —— > Preprocessor Macros. 使用例子: 1 #ifndef APP_STORE_DISTRIBUTION 2 //your method 3 #if DEBUG 4 //your method 5 #else 6 //your method 7 #endif 8 //your method 9 #endif

maven自动编译,解决你每次代码修改需要重新编译的繁琐

maven结构的项目,我们在每次修改代码后都会需要手动编译,下面命令可以解决此问题,只要代码修改,会自动帮你编译. 进入项目目录执行:mvn -U eclipse:clean eclipse:eclipse 然后重新执行mvn clean package,启动你的servlet容器看看吧.

将代码在有xib得情况下设置到最底层(即执行顺序不是先执行xib) 将图片毛玻璃状态

在xib拖拽控件的界面给view添加背景 UIImageView *imageView = [[UIImageView alloc]initWithFrame:self.view.bounds]; imageView.image = [UIImage imageNamed:@"51670.jpg"]; [self.view insertSubview:imageView atIndex:0];(这句代码就是将图片放到最底层) 将背景模糊(毛玻璃状态) UIToolbar *toolBa

IOS开发,知识点小结,ios开发中常用的宏定义总结

IOS开发,从应用跳转到用浏览器打开网页: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.oatos.com/bbs/"]]; 用一个Button覆盖整个cell,添加动作 cell.accessoryType = UITableViewCellAccessoryNone; UIButton *btn = [[UIButton alloc] initWithFrame:CGRec

iOS 常用宏定义

下面是在iOS开发中常用的一些宏定义: //一般的提示信息 #define mAlertView(title, msg) \ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; #define SYSTEM_VERSION_GREATER_TH

宏定义的黑魔法 - 宏菜鸟起飞手册

转载:https://onevcat.com/2014/01/black-magic-in-macro/ 宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多.但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加.如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能(虽然宏本身