static和Extern

作者: RadioWaves | 来源:发表于2015-08-23 19:55 被阅读99次

    static的作用:

    • 修饰局部变量:
    • 只会初始化一次;
    • 而且只有一份内存;
    • 并不会改变局部变量的作用域,仅仅是改变了局部变量的生命周期(直到程序结束,这个局部变量才会销毁)


      Snip20150823_17.png
    • 修饰全局变量:
    • 用static修饰全局变量,那么作用域仅限当前文件访问.

    Extern : 可以访问全局的变量

    • 项目中添加一个Person类在.m文件中声明一个全局变量并赋值20;


      Snip20150823_19.png
    • 此时我想在viewController中访问这个属性.但是无法访问


      Snip20150823_20.png
    • 那么此时想访问在Person中的age变量的时候 用extern引用一下就可以了


      Snip20150823_21.png
    • 也就是说:加一个extern,要引用一个变量age,他会现在viewController中找,如果没有在去Person中找.

    • 默认情况下,C语言的全局变量,在任何地方都可以访问.
    • 只要加上extern就可以访问任何地方的全局变量.
    • 由于用extern访问不会定义变量,只是引用,所以是不会分配内存的,
    • 由于谁都可以更改全局变量,所以是不安全的

    相关文章

      网友评论

      本文标题:static和Extern

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