代码改变世界

iOS开发中 const,static,extern用法总结

2018-05-13 12:14  dengchaojie_learner  阅读(163)  评论(0编辑  收藏  举报

const

 

const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。

  • 编译时刻:宏是预编译(编译之前处理),const是编译阶段。
  • 编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。
  • 宏的好处:宏能定义一些函数,方法。 const不能。
  • 宏的坏处:使用大量宏,容易造成编译时间久,每次都需要重新替换。

宏定义的是常量,常量都放在常量区,只会生成一份内存。

 

const的作用: const 是一个左结合的类型修饰符,它与其左侧的类型修饰符一起为一个类型修饰符,表示该类型只读.

简言之:沿着*号划一条线,如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。

static const NSString *personA1 = @"a1";//用static修饰后,不能提供外界访问

*personA1是常量,不能被修改;但是personA1是可变的,可以指向新的内存地址,当personA1被赋值时,personA1就指向了新的内存,从而读取出来的值发生变化;

static NSString *const personA2 = @"a2";//字符串常量    personA2不能被重新赋值;

https://www.jianshu.com/p/2fd58ed2cf55

https://jatstar.cn/2016/01/10/const-static-extern/

https://www.jianshu.com/p/b86278d322f5