const
1.const只修饰右边的值
NSString * const account = @"account"; //account不可变
NSString const *account = @"account"; //account可变
2.const会编译检查,会报编译错误,宏定义是预编译(编译之前处理)
宏的好处:宏能定义一些函数,方法。 const不能。
宏的坏处:使用大量宏,容易造成编译时间久,每次都需要重新替换。
static
- 修饰局部变量:
1.延长局部变量的生命周期,程序结束才会销毁。
2.局部变量只会生成一份内存,只会初始化一次。
3.改变局部变量的作用域。
- 修饰全局变量
1.只能在本文件中访问,修改全局变量的作用域,生命周期不会改
2.避免重复定义全局变量
static const int age = 24;
extern:
只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
- extern工作原理:
先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找
.m文件
NSString *const FirstNewUserCouponPopView = @"FirstNewUserCouponPopView";
.h文件
extern NSString *const _Nullable FirstNewUserCouponPopView;
网友评论