免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1803 | 回复: 2
打印 上一主题 下一主题

[C] 关于static 变量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-02 10:41 |只看该作者 |倒序浏览
当在程序中将一个变量声明为static变量时,它会自动被初始化为0或NULL。
     请问,在这个过程中,计算机是怎样工作的?

论坛徽章:
0
2 [报告]
发表于 2008-05-02 10:54 |只看该作者
他是在编译器编译的时候初始化的, 大部分编译器是这么做的.
如gcc

看到这么一段话, 不知对你有帮助没有

The   BSS   section   is   where   compilers   typically   put   static   objects   that   don’t   
  have   an   explicit   initial   value.   In   modern   operating   systems   
  like   Windows   and   Linux,   the   OS   allows   the   compiler/linker   to   put   all   uninitialized   
  variables   into   a   BSS   section   that   simply   tells   the   OS   how   many   bytes   
  to   set   aside   for   that   section.   When   the   operating   system   loads   the   program   
  into   memory,   it   reserves   sufficient   memory   for   all   the   objects   in   the   BSS   section   
  and   fills   this   range   of   memory   with   zeros.   It   is   important   to   note   that   the   
  BSS   section   in   the   executable   file   doesn’t   contain   any   actual   data.   For   this   
  reason,   programs   that   declare   large   uninitialized   static   arrays   in   a   BSS   section   
  will   consume   less   disk   space.

[ 本帖最后由 piaoyizu 于 2008-5-2 10:56 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-05-03 00:50 |只看该作者
static会被自动初始化??

没注意
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP