静态变量 - static
static修饰的变量,是一个私有的全局变量,只能声明在.m文件中,外部类无法访问。
1.不会改变修饰的局部变量的作用域,但是可以延长局部变量的生命周期
2.只会最开始调用的时候初始化一次,在内存中只会存一份,存于静态存储区,程序结束,所修饰的变量才会被销毁
常用实例:
1.单例:static修饰的全局变量,初始化一次之后,不会被释放掉。
2.UITableViewCell cellId,初始化一次,方法结束之后,重新调用不需要初始化,存于静态存储区,值并未改变
静态常量 - const
const修饰的变量是不可变的,试图修改的话,编译器会报错,修饰右边原则,定义不可变的
全局变量 - extern
extern修饰全局变量,和宏定义类似,宏定义程序启动时预编译,extern初始化编译,初始化一次,宏能定义方法,但是每次都有替换的过程,宏定义太多预编译的时间比较长
extern和const static结合使用