一 const
常量 const 修饰的值是不可以改变的,
const
右边最近的内容不可以被改变
1 基本数据类型
2 指针类型
2.1 指针不允许被改变,值可以改变
2.2 指针可以被改变,但是值不能改变(最常用)
二 static
1 修饰局部变量
1,不改变局部变量的作用域,但可以延长局部变量的生命周期,直到程序结束才销毁。
2,只会初始化一次,初始化湖一直存在内存中,直到程序结束才被释放。
2 修饰全局变量
默认情况下,全局变量在整个程序中是可以被访问的(即全局变量的作用域是整个项目文件)
1,当static关键字修饰全局变量时,作用域仅限于当前文件,外部类是不可以访问到该全局变量的(即使在外部使用extern关键字也无法访问)。
三:extern
extern主要是用来引用全局变量,它的原理就是先在本文件中查找,本文件中查找不到再到其他文件中查找。
常把extern和const联合使用在项目中创建一个文件,这个文件文件中包含整个项目中都能访问的全局常量。
四:UIKIT_EXTERN
UIKIT_EXTERN简单来说:就是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)、public修饰的方法或变量库外仍可见的属性
.h UIKIT_EXTERN NSString * kStringFractionDigits(NSDecimalNumber * number, NSUInteger digits); .m /// 保留几位小数,四舍五入保留 NSString * kStringFractionDigits(NSDecimalNumber * number, NSUInteger digits){ NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setMaximumFractionDigits:digits]; [formatter setMinimumFractionDigits:0]; [formatter setMinimumIntegerDigits:1]; return [formatter stringFromNumber:number]; }
五 使用
1 static + const 静态常量
static NSString * const cellId = @"cellid";
2 extern + const 全局常量
新建APPConst
.h
.m
3 UIKIT_EXTERN + const 全局常量
类似于extern + const
.h
.m