static 用法总结

一 静态局部变量

1 存储空间的分配  作用域 生存期

static分配在静态存储区,作用域仅仅限于声明该变量的函数内部。在程序

整个运行期间都不释放,生存期贯穿于程序运行的整个过程。

auto类型分配在栈上,属于动态存储类别,占动态存储区空间,作用域仅仅限于声明该变量的函数内部。函数调用结束后自动释放,生存期不过是在声明该变量的函数内部

2 赋初值时的处理方式

static静态局部变量在编译时赋初值,即只赋初值一次;

auto自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句

3、未赋初值时的处理方式

如果在定义局部变量时不赋初值的话:

static静态局部变量,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。

auto自动变量,如果不赋初值则它的值是一个不确定的值。

 

二 静态外部全局变量

C语言中static还用来声明静态外部全局变量,那么这个全局变量的作用域就被限制在本文件内部

如果在定义点之前的函数想要调用该变量 则应该在引用之前用关键字extern对该变量作“外部变量声明”。

表示该变量是一个已经定义的外部变量。有了此声明,就可以从“声明”处起,合法地使用该外部变量。

如果我们声明的全局变量不想被其他文件访问和使用 ———— 在声明的时候前面加上关键字 static

 

三 静态外部函数

C语言中函数的默认为全局的,外部文件想要引用可加extern 如果不想被引用可用static 修饰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值