为了账号安全,请及时绑定邮箱和手机立即绑定

Static 在 C当中

Static 在 C当中

C
qq_我是菜鸟我怕谁_0 2016-04-03 04:32:14
请问static在C当中有什么用?求具体解释。
查看完整描述

3 回答

?
飞奔的王麻子

TA贡献12条经验 获得超5个赞


分为两种情况:

1)全局作用域:包括全局变量和函数。C默认是external的,也就是说,不再变量和函数前面加static的话,默认为extern,任何其它文件都可以访问。若加了static限定词的话,只有本文件中的其它函数、变量可以访问。

2)局部作用域:针对的是局部变量。若不加static,则默认为auto,系统自动分配,其生命周期为定义开始到函数结束(在for或if等中定义并使用的变量,生命结束的时间为该条件或循环结束;对于标准C来说,不能在条件或循环中定义变量的,C++可以)。也就是说,你每次调用函数时,系统会为变量重新分配存储空间。若加static,表示该变量是静态的,编译时只分配一次空间,后面他的生存期和程序一样长,即使它所在的函数被销毁。从空间分配看,自动类变量是在堆栈中的,堆栈由系统自动维护,而被static修饰的变量则是被安置在数据段,在编译时就已经确定了。

查看完整回答
反对 回复 2016-04-04
?
onemoo

TA贡献883条经验 获得超454个赞

我在老问答区有一个详细回答:

http://www.imooc.com/qadetail/86011

查看完整回答
反对 回复 2016-04-04
?
jfhdibrbfjd

TA贡献163条经验 获得超40个赞

和全局变量差不多  但是只能在当前源文件中使用  

查看完整回答
反对 回复 2016-04-03
  • 3 回答
  • 2 关注
  • 1480 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信