美文网首页
iOS关于static全局变量的使用

iOS关于static全局变量的使用

作者: Daniel梁 | 来源:发表于2018-10-13 15:44 被阅读0次

#### 总所周知static变量有三个作用

#### 修饰的局部变量(在方法里面的变量)

- 使得局部变量只初始化一次

- 局部变量在程序中只有一份内存,使这个变量拥有记忆功能(可以被赋值).

- 局部变量的作用域不变,但是生命周期变了(直到程序结束才销毁)

#### 修饰的全局变量

- 拥有局部变量修饰时候的属性,不同的是该静态变量只能被本文件访问(作用域在本文件).

局部变量的代码验证可以参考这篇文章https://blog.csdn.net/shenyongjun1209/article/details/78753711

这里我验证一下修饰全局变量的作用域范围

这是一个TestViewController的.m文件

```

#import "TestViewController.h"

static NSString *name;

NSString *age;

@interface TestViewController ()

@end

@implementation TestViewController

@end

在自带ViewController.m文件导入TestViewController.h后通过extern取得文件的name和age

#import "ViewController.h"

#import "TestViewController.h"

extern NSString *name;

extern int age;

@interface ViewController ()

@end

在viewDidLoad方法里面尝试拿到name和age

@implement ViewController()

- (void)viewDidLoad {

    [super viewDidLoad];

    NSLog(@"%@",name);

    NSLog(@"%d",age);

}

@end

```

报错找不到_name这个symbols属性,把 NSLog(@"%@",name);注销掉demo才可以运行

说明static修饰的全局变量只能被本文件使用,而没有被static修饰的age则可以导入该文件头文件后的任意文件使用。

相关文章

  • extern static const inline

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

  • iOS关于static全局变量的使用

    #### 总所周知static变量有三个作用 #### 修饰的局部变量(在方法里面的变量) - 使得局部变量只初始...

  • 1、static const 全局变量 单利为什么用stati

    1)static,extern修饰全局变量 static修饰的全局变量只能在当前文件中使用 全局变量和静态全局变量...

  • ios开发笔记- (初级)

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

  • ios开发笔记-(初级)

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

  • Objective-C中static、const和extern关

    一 static 1,修饰全局变量 在全局变量前加static,全局变量就被定义成为一个静态全局变量(全局变量和静...

  • Python 中 global 的用法总结

    在 java 中,想声明一个全局变量可以用到 static,python 中则是使用 global 来达到全局变量...

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

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

  • C/C++语言嵌入式编码规范

    编码规范 尽量少用全局变量 内部函数尽量使用“static”进行声明 可使用“#pragma once”代替各种“...

  • c 静态全局变量

    static 与 全局变量当一个进程的全局变量被声明为static之后,它的中文名叫静态全局变量。静态全局变量和其...

网友评论

      本文标题:iOS关于static全局变量的使用

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