C语言中的static和extern关键字的作用

因为在app开发中,定义网络链接或者设定常用变量时经常会用到一些C中的关键字,但很多同学只见其名而不知其意,今天就介绍2个开发中常用的C语言关键字,分别是C语言中的static和extern关键字。

C语言中的static和extern关键字的作用
  ic

static的'作用

修饰局部变量:

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

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

3.改变局部变量的作用域

写法:

//方法内部static修饰的变量

//不管调用与否,只会调用一次

- (void)staticTest

{

// static修饰局部变量

static int age = 0;

age++;

NSLog(@"%d",age);

}

//即调用两次该方法

//打印结果

//1

//2

修饰全局变量

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

2.避免重复定义全局变量

写法:

// 全局变量:只有一份内存,

//所有文件共享,与extern联合使用。

// 写在方法外部

// static修饰全局变量

static int age = 20;

//调用

extern int age;

NSLog(@"%d",age);

//打印结果

//20

  rn

extern作用:

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

extern工作原理:

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