一.概念:static是用来修饰变量和函数的
1.修饰局部变量——称为静态局部变量
2.修饰全局变量——称为静态全局变量
3.修饰函数——称为静态函数
.
.
.
二.介绍三个用法:
.
1.修饰局部变量——称为静态局部变量
注释:static修饰局部变量的时候,局部变量出了作用域,不销毁。本质上static修饰局部变量时改变了变量的存储位置,影响了变量的生命周期,生命周期延长,和程序的生命周期一样。
.
.
.
2.修饰全局变量——称为静态全局变量
扩展:extern的用法
(1)全局变量具有外部连接属性,声明变量而不定义
(2)extern是一种“外部声明”的关键字,字面意思就是子啊此处声明某种变量或函数,在外部定义。(就是告诉编译器,现在编译的文件中,有一个标识符虽然没有在本文件中定义,但是它是在别的文件中定义的全局变量,要放行!)
(3)能够被其他模块以extern修饰符引用到变量通常是全局变量
(4)声明可以多次定义只能一次
(5)全局变量在外部使用声明时,extern关键词是必须的,而局部变量的声明不能有extern的修饰
(6)static修饰全局变量时候,这个全局变量的外部连接属性就变成了内存连接属性。其他源文件(.c)就不能再使用到这个全局变量了,所以会报错
使用时感觉作用域变小了
.
.
.
3.修饰函数——称为静态函数
1.一个函数本来是具有外部连接属性,但是被static修饰的时候,外部连接属性,就变成了内部连接属性,其源文件.c就无法使用了(同理可写出两文件函数用法)
(加static后报错)