美文网首页
Const ? 宏? 我该用哪一个?

Const ? 宏? 我该用哪一个?

作者: MrPlusZhao | 来源:发表于2018-02-09 14:44 被阅读16次

我想大多数人在开发的过程中,为了方便,都会把一些代码块或者一些规定值设定成宏定义,例如:

#define  USER_DEFAULT  [NSUserDefaults standardUserDefaults]  

但是我们在苹果的开发文档中,经常见到const这样的用法

NSString *const UITableViewIndexSearch  .........

那么这两种定义有何区别,究竟该怎么使用比较合适呢?
宏定义常用的有以下两种
1:常用的字符串抽成宏 如

#define FAIL_REQUEST_MSG @"获取数据失败,请稍候重试"

2:常用的代码抽成宏 如:

#define  USER_DEFAULT  [NSUserDefaults standardUserDefaults]

接下来根据几个方面来分析他们的优缺点,从而分析各自试用的条件
1:编译时刻:
------宏:预编译时刻 (#标识的代码都是在预编译时刻,比如打开项目的时候)
------const:编译时刻编译(Command+B的时候)
2:编译检查:
------ 宏:不会检查,很容易在程序运行的时候出现问题
------const:编译的时候会检查错误,相对安全系数高
3:使用方法:
------宏:可以定义字符串,可以定义代码
------const:定义一个全局的只读变量,只读参数
4:注意事项
------1:项目中定义了太多的宏,会影响项目的编译时间过长,而const 只会编译一次,大大的节省了时间,所以,常用的字符串通常使用const来定义
------2:无论是const还是宏, 都只会分配一次内存空间

总结:
----综上所述:我们已经大概的了解了宏和const的区别和特点,在实际运用中,还请各位根据自己的业务需求,具体情况具体分析.

相关文章

网友评论

      本文标题:Const ? 宏? 我该用哪一个?

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