static

1.static修改局部变量:变量只会初始化一次,即使重复调用函数,该变量在内存中也只有一份。可延长局部变量的生命周期,直到程序结束才销毁。

2.static修饰全局变量:  作用域仅限于当前文件,外部类是不可以访问到该全局变量的。不用static修饰的话,全局变量在整个程序中是可以被访问的(即全局变量的作用域是整个项目文件).

例:在一个控制器中修改Appdelegate中声明的全局变量。

extern NSInteger globalValue; 

globalValue += 10;

 NSLog(@"%zd",globalValue);

static关键字修饰局部变量:

当static关键字修饰局部变量时,只会初始化一次且在程序中只有一份内存;

关键字static不可以改变局部变量的作用域,但可延长局部变量的生命周期(直到程序结束才销毁)。

static关键字修饰全局变量:

当static关键字修饰全局变量时,作用域仅限于当前文件,外部类是不可以访问到该全局变量的(即使在外部使用extern关键字也无法访问)。

extern关键字:

想要访问全局变量可以使用extern关键字(全局变量定义不能有static修饰)。

全局变量是不安全的,因为它可能会被外部修改,所以在定义全局变量时推荐使用static关键字修饰。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容