static const extern define
2018-10-23 本文已影响8人
幻影道哥
了解static 与 const的使用 看我上一篇文章.
iOS写法优化,苹果推荐是使用const.下面我把整理的区别做一下解释:
const :
1.const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p)
2.被const修饰的变量是只读的
3.const是在编译阶段检查,如果有问题会报错.
4.static const修饰的变量只有一份内存
5.不能定义表达式
static :
1.修饰局部变量
1.1让局部变量只初始化一次
1.2局部变量在程序中只有一份内存
并不会改变局部变量的作用域,仅仅是改变了局部变量的生命周期(只到程序结束,这个局部变量才会销毁)
2.修饰全局变量
全局变量的作用域仅限于当前文件,在pch文件里导入头文件可以作用于全局.
static和const的联合使用 定义一个只能在当前文件访问的全局常量
static是将一个全局变量变成了局部变量(只在当前文件访问)
const是将一个局部变量变成了局部变量
extern :
1.只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
2.先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找
使用方法:
1.新建两个文件(1个.h 1个.m)例如(LKYConst)
2.在.m文件中定义常量并且赋值,在.h文件中引用该常量
如下图:
define:
宏定义是方法的展开
1.每个地方使用到都会分配内存
2.只是在预处理器里进行文本替换,没有类型
3.可以预编译表达式