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

版权声明:此文章有作者原创,涉及相关版本问题可以联系作者,[email protected] https://blog.csdn.net/weixin_42600072/article/details/88671208

static修饰全局变量

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

static修饰局部变量

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

static修饰函数

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

猜你喜欢

转载自blog.csdn.net/weixin_42600072/article/details/88671208