Home static 和 extern 使用
Post
Cancel

static 和 extern 使用

static作用:

1、修饰局部变量:

  • 延长局部变量的生命周期,程序结束才会销毁。

  • 局部变量只会生成一份内存,只会初始化一次。

  • 改变局部变量的作用域。

如:

1
2
3
4
5
6
7
- (void)test
{
    // static修饰局部变量
    static int age = 0;
    age++;
    NSLog(@"%d",age);
}

如果连续调用两次test,会发现age打印结果如下图所示,age值初始化了一次,并且声明周期被延长了。

2、修饰全局变量 

  • 只能在本文件中访问,修改全局变量的作用域,生命周期不会改

  • 避免重复定义全局变量

extern作用:

只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量

extern工作原理:

先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。

例如我们在该文件定义了一个全局变量:

1
2
// static修饰全局变量
static int age = 20;

我们使用它时,需要用extern int age; 打印结果如下,它会自动为我们寻找全局变量age,而非test中的age。

This post is licensed under CC BY 4.0 by the author.

static 和 const 联合使用

ApplePay苹果支付