iOS中的static和extern关键字

今天突然想起前阵子面试的时候一道笔试题,问关于static和extern关键字,得空测试了下,整理下,写在这里记录,就不往印象笔记里弄了。

static:静态关键字,修饰变量、函数;保存在静态区。

static修饰局部变量和全局变量有不同的表现和注意事项

1.static修饰局部变量,该变量只初始化一次,保存在静态区,其作用域不会改变,但其内存一直在,直到整个程序运行结束。

2.static修饰全局变量的时候,该变量的作用域仅在该文件内,外部不可以访问。

extern:引用外部变量或者函数(多用于C函数);可以引用其他类的全局变量及修改该变量


如果不想被外部访问的话一定要注意加上static关键字。

小结:static变量 既不在堆区也不在栈区,是单独的一个系统分配的静态区,这部分的变量不参与引用计数;合理利用局部静态变量;对于定义全局变量要注意外部权限控制;


参考:https://www.cnblogs.com/cqb-learner/p/5709048.html

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

推荐阅读更多精彩内容

  • 1 原理 1.1 首先,关于声明和定义的区别。 这种写法(函数原型后加;号表示结束的写法)只能叫函数声明而不能叫函...
    Pitfalls阅读 6,582评论 2 12
  • 1.static (1)修饰局部变量 用static声明局部变量时,则改变变量的存储方式(生命期),使变量成为静态...
    济公活佛是小松鼠阅读 869评论 0 1
  • 1.static (1)修饰局部变量 用static声明局部变量时,则改变变量的存储方式(生命期),使变量成为静态...
    iOS俱哥阅读 658评论 0 4
  • 失眠的夜是漫长的,早上又醒不来,醒来之后眼睛布满血丝,一身疲惫。 是的,昨晚失眠了,不知有多久没有过这种感受了。最...
    小K_sn阅读 139评论 0 0
  • 感谢时间, 让我看清身边的每张脸, 哪些是真心实意对我好, 哪些是虚情假意对我笑。 感谢时间, 让我明白人生什么最...
    科技之星_75f5阅读 371评论 0 0