static const extern define

了解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文件中引用该常量
如下图:

694556-2bd54ce3af0fc294.png
694556-da37e48304a8ac27.png
694556-14cfc2840a661e71.png
694556-845f2cda70684e5e.png

define:
宏定义是方法的展开
1.每个地方使用到都会分配内存
2.只是在预处理器里进行文本替换,没有类型
3.可以预编译表达式

define PersonExpresson if(){} else{}

你可能感兴趣的:(static const extern define)