iOS 宏
2016-05-30 11:35
387 查看
iOS 宏
作用:简单说:使代码简洁,增加可读性,减少工作量。
分类:对象宏、函数宏。
比如:对象宏
这种#define X A 的宏,编译器在编译时,把X替换为A ,是宏的展开。
比如:函数宏:
注意括号的运用
一定使用(),否则宏简单的展开替换,由于运算符优先级,会导致逻辑错误。
实例:
https://onevcat.com/2014/01/black-magic-in-macro/
未完待续。。。。。。
作用:简单说:使代码简洁,增加可读性,减少工作量。
分类:对象宏、函数宏。
比如:对象宏
#define M_PI 3.14159265358979323846264338327950288
这种#define X A 的宏,编译器在编译时,把X替换为A ,是宏的展开。
比如:函数宏:
注意括号的运用
#define MIN(A,B) ((A) < (B) ? (A) : (B))
一定使用(),否则宏简单的展开替换,由于运算符优先级,会导致逻辑错误。
实例:
/* *当前版本 */ #define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion]) /* *当前语言 */ #define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0]) /* *屏幕宽度、高度 */ #define SCREEN_WIDTH ([[UIScreen mainScreen]bounds].size.width) #define SCREEN_HEIGHT ([[UIScreen mainScreen]bounds].size.height) #define FRAME_WIDTH [[UIScreen mainScreen] applicationFrame].size.width #define FRAME_HEIGHT [[UIScreen mainScreen] applicationFrame].size.height /* * iPhone statusbar 高度 */ #define PHONE_STATUSBAR_HEIGHT 20 /* * iPhone 屏幕尺寸 */ #define PHONE_SCREEN_SIZE (CGSizeMake(SCREEN_WIDTH, SCREEN_HEIGHT - PHONE_STATUSBAR_HEIGHT)) /* * iPhone or iPad */ #define DEVICE_IS_PAD ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) #define DEVICE_IS_PHONE ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) //color 宏 #define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1] #define RGBACOLOR(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f \ alpha:(a)] // 默认背景颜色 #define COMMEN_VIEW_BGCOLOR RGBCOLOR(235,235,235)
https://onevcat.com/2014/01/black-magic-in-macro/
未完待续。。。。。。
相关文章推荐
- 简单讲解C语言中宏的定义与使用
- C/C++ 宏详细解析
- 深入探讨:宏、内联函数与普通函数的区别
- C++十六进制宏的用法详解
- C++基础入门教程(二):数据、变量、宏等
- 枚举和宏的区别详细解析
- 详解C语言中的#define宏定义命令用法
- 浅析c++ 宏 #val 在unicode下的使用
- 如何在C语言的宏中使用类型关键字
- C++中宏的使用问题详解
- c/c++ 宏定义中的#/##
- 树形结构
- 巧用可变参数宏、编译器内置宏和printf输出调试信息
- 用宏获取函数名
- C语言之“宏”
- iOS开发中常用宏定义
- do...while(0)在宏定义中的巧妙用法
- do...while(0)在宏定义中的巧妙用法
- 万能类型的设计
- 单例的宏模板