IOS 中Static关键字

作者: 暴躁的小豆子 | 来源:发表于2019-09-26 17:35 被阅读0次

当static关键字修饰局部变量时,改变生命期,只会初始化一次。(直到程序退出才会释放储存单元)

运行结果:

截图

当static关键字修饰局部变量时,在程序中永远只有一份内存

运行结果:

截图

Static 修饰局部变量时,不可以改变其作用域


2.Extern

引用关键字,当某一个全局变量,没有用static修饰时,其作用域为整个项目文件,若是在其他类想引用该变量,则用extern关键字,它的作用是声明外部全局变量。这里需要特别注意extern只能声明(并没有分配内存),不能用于实现。

在开发中,我们通常会单独抽一个类来管理一些全局的变量或常量,下面来看看逼格比较高的一种做法:

我们可以在.h文件中extern声明一些全局的常量,在.m实现

static关键字修饰局部变量:

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

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

static关键字修饰全局变量:

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

extern关键字:

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

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


Static和extern的区别:

(1)extern修饰的全局变量默认是有外部链接的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern全局变量的声明,就可以使用全局变量。

(2)static修饰的全局静态变量,作用域是声明此变量所在的文件。

相关文章

  • iOS OC内联函数 inline

    inline 在iOS中的一些框架中,static inline是经常出现的关键字组合. static自不用多说,...

  • iOS OC中内联函数inline

    inline 在iOS中的一些框架中,static inline是经常出现的关键字组合。 static自不用多说,...

  • # iOS OC内联函数 inline

    在iOS中的一些框架中,static inline是经常出现的关键字组合. static自不用多说,表示在当前文件...

  • iOS OC中的关键字组合static inline

    在iOS中的一些框架中,static inline是经常出现的关键字组合. inline 在iOS中的一些框架中,...

  • IOS 中Static关键字

    当static关键字修饰局部变量时,改变生命期,只会初始化一次。(直到程序退出才会释放储存单元) 运行结果: 当s...

  • 静态

    多个对象中存在的共同(共同数据),为节省空间而加上static关键字。用了static关键字代码与没用static...

  • iOS中static,const,extern相关的问题

    iOS中static,const,extern相关的问题 iOS中static,const,extern相关的问题

  • iOS中的 static . const 和 exten

    static.const exten 是写在iOS 应用中常用的几个关键字,本篇文章介绍介绍。 static被 s...

  • Java static关键字

    声明static属性 static是Java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可...

  • Kotlin学习2

    1.Kotlin中static在kotlin中 没有static关键字,但是有类似java中static的用法例如...

网友评论

    本文标题:IOS 中Static关键字

    本文链接:https://www.haomeiwen.com/subject/cvucuctx.html