关于全局变量和静态全局变量的问题

nanoo 2006-12-02 12:09:26
全局变量和静态全局变量有何不同?分别在什么时候使用他们?
当程序退出时是不是都自动释放内存空间?(不是用动态分配的方法得到的内存)?小弟有点迷惑?请各位大侠指点!
...全文
286 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我的理解 :
全局变量和静态全局变量其本相同
全局变量可以用extern 把作用域引用到其它文件里,
静态全局变量只有定义的那个文件可以用直接变量名访问,就是不能用extern 引用到外部

程序一启动就分析内存,因为编译时,就定义好了。

因为是在程序栈中分配的内存,程序一退出就自动释放内存了



wndrfll 2006-12-03
  • 打赏
  • 举报
回复
是啊,全局非static变量可以在别的文件中以extern方式声明并使用。
lzg0001 2006-12-03
  • 打赏
  • 举报
回复
我是这样理解的!
敬佩上面5个星的那位!我的英语...唉!
lzg0001 2006-12-03
  • 打赏
  • 举报
回复
一、使用范围:全局变量在声明的文件内有效,静态变量则依据其声明的地方而定!
二、存在时效:均为程序运行全程。
answermyquestion 2006-12-03
  • 打赏
  • 举报
回复
2楼和4楼已经说完了俺想说的
Stefine 2006-12-03
  • 打赏
  • 举报
回复
全局变量在整个工程文件内都有效(extern);
静态全局变量只在定义它的文件内有效

当程序退出时是不是都自动释放内存空间?
这个是肯定滴
VCLIFE 2006-12-02
  • 打赏
  • 举报
回复
楼上太高了,勉强看懂了几句,强人啊
这个问题我也不太知道,哪个高人来用中国话给说下
yjgx007 2006-12-02
  • 打赏
  • 举报
回复
Nothing to be different between static and non-static global variable.
Once you defined them in your project, compiler will allocate them with a fixed memory space without dynamically on stack. i.e, the space of global variable is allocated when program is loading, the space of dynamic variable is allocated on stack when program is running. usually, dynamical variable is used in some functions.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧