static和Extern

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访问不会定义变量,只是引用,所以是不会分配内存的,
  • 由于谁都可以更改全局变量,所以是不安全的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容