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