C/C++中static关键字的作用详解

本文介绍了C/C++中static的三种修饰作用。static修饰全局变量时,静态全局变量局限于定义它的源文件;修饰局部变量时,静态局部变量存于静态区,生存周期长且只能初始化一次;修饰函数时,静态函数作用范围限于本源文件,且内存中只有一份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static修饰全局变量

  1. 全局变量经static修饰后变为已经静态全局变量,两者都属于静态存储方式,这一点并没有差别;
  2. 普通的全局变量作用范围是整个源程序,如果该源程序包含多个源文件的话,那么其在各个源文件中都是有效的;而静态全局变量局限于定义该静态全局变量的源文件内,两者在作用范围上有很大区别。

static修饰局部变量

  1. 普通的局部变量是存储在栈中,其生存周期随着函数等的调用结束而结束;但静态局部变量属于静态区,其生存周期与全局变量一样随着程序的结束而结束。
  2. 静态局部变量只能初始化一次。

static修饰函数

  1. 在作用范围上,static修改全局函数将其限制在本源文件之内。
  2. 静态函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值