static和extern和全局变量和局部变量

时间:2022-05-14 18:18:17

全局变量(文件作用域变量)

声明在函数体外的变量,全局变量的作用域,即具有文件作用域, 如果要在其他文件使用,则要加上关键字extern 声明后可以使用
存放在静态存储区中;
生命周期为自动生存周期,即在作用域阶结束后内存将释放。



局部变量

声明定义在函数体内的变量。



static+全局变量

全局静态变量,改变了全局变量的作用域, 使其在声明他的文件外是不可见的其他文件 加extern就违法了,其他文件可以声明使用相同名字的变量,但这个就不是静态全局变量了
但不改变他的存放位置;
生命周期为静态生存周期,即在程序执行期间将一直存在。
advantage:
1、不会被其他文件所访问,修改;
2、其他文件中可以声明使用相同名字的变量。

静态函数

在函数返回类型前加上关键字static,静态函数只能在声明他的文件中可见。