美文网首页iOS
iOS static全局变量作用区域

iOS static全局变量作用区域

作者: 某非著名程序员 | 来源:发表于2019-04-30 11:42 被阅读17次

static全局变量仅对当前文件生效,即在A文件中修改,在B文件中值不生效;在A的分类也不生效。一个static全局变量在不同文件会产生多份。

对于iOS static全局变量,如果只是当做一个常量,可以使用;如果是项目中需要赋值,建议谨慎使用。

下面举例,并附上demo
在Const.h中定义static int topmargin =44;并在modity方法topmargin修改为64。
在appdelegate->didFinishLaunchingWithOptions 中调用[Const modity]修改topmargin=64;

全局变量打印值和地址

按以前的逻辑,在初始化时令topmargin=64,然后所有地方使用应该是64。而实际情况在ViewController中打印值却是Const.h初始化的值44,地址也产生了变量。
图1的结果说明:同一个static全局变量,在不同类中地址都不相同,且在Const modity修改static变量值后,其他类也未生效。

这就所为的static全局变量仅对当前文件生效。即自己使用自己修改,多个文件会产生多份。ViewController及其分类也是独立的。

相关文章

  • iOS static全局变量作用区域

    static全局变量仅对当前文件生效,即在A文件中修改,在B文件中值不生效;在A的分类也不生效。一个static全...

  • ios开发笔记- (初级)

    ios全局变量:ios全局变量不能用的太多,而且一般都需要static保护。 为何不能用太多,因为全局变量作用域在...

  • ios开发笔记-(初级)

    ios全局变量:iOS全局变量不能用的太多,而且一般都需要用static保护。 为何不能用太多,因为全局变量作用...

  • extern static const inline

    static static 可以用来修饰静态变量,在iOS中,如果使用static修饰全局变量,则全局变量只能在当...

  • iOS开发,一些关键字的理解

    1-Static 在常用的iOS开发中,static一般有俩方面的作用:修饰局部变量和全局变量 1-1:修饰局部变...

  • iOS中数据传值的几种方式

    值传递:基本数据类型的变量之间的数据传递 全局变量static和extern 1)static修饰的全局变量作用范...

  • 2018-01-23

    Static关键字用法 C语言中面向过程 静态全局变量 静态全局变量的作用:1.静态全局变量的作用域:不能被其他文...

  • 语言基础(一)

    1.Static关键字的作用 (1)全局静态变量:在全局变量前面加static ,全局变量就变成全局静态变量 存...

  • BAT面试 基础篇(一)

    ● 说一下static关键字的作用 参考回答: 1. 全局静态变量 在全局变量前加上关键字static,全局变量就...

  • static关键字和const关键字的作用

    static关键字和const关键字的作用 static 答: static修饰的全局变量和函数只在当前文件中有效...

网友评论

    本文标题:iOS static全局变量作用区域

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