static关键字

static关键字作用
C语言中:
static的用法有两种:
1.修饰全局变量 或 函数,用于限定该变量或函数作用域为本文件。(这种限定是针对编译器而言,运行时没有区别)
2.修饰局部变量,用于修改变量的生存周期,维持持久性。

1.修饰变量时,只执行一次初始化,且延长了局部变量的生命周期,程序运行结束之后释放内存。
2.修饰全局变量时,变量只能在所在文件中调用,即使使用extern声明也无法在其他文件中访问。
3.修饰函数时,该函数只能在本文件中调用。
static修饰变量均存放在全局数据区的静态变量区,包括静态局部变量区和静态全局变量。初始化时自动初始化为0 。
静态局部变量的生存周期贯穿整个程序与奴性时间,但是作用域还是函数内。
把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。
(1)静态局部变量和全局变量生命周期为整个源程序的周期,而动态的局部变量为函数的生存周期;
(2)静态的全局变量作用范围在该源文件中,非静态的全局变量在的源程序中(包含多个源文件);
4.不想被释放的时候可以用static。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用 static 修饰。
5.考虑到数据安全性(当程序想要使用全局变量的时候应该先考虑使用 static)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值