您好,请教全局变量/局部变量的有关问题,谢谢(20分)

  • 主题发起人 主题发起人 新的自我
  • 开始时间 开始时间

新的自我

Unregistered / Unconfirmed
GUEST, unregistred user!
您好,全局变量可以作用在全局,局部变量只能在申明的函数/过程中作用 ;想请教:

全局变量和局部变量的存活期
即:

全局变量存放在哪儿(从内存角度) ? 全局变量何时被释放 ? 程序结束时还是该Unit
结束时(这两个结束是不是同时的?) ?
局部变量存放在哪儿(从内存角度) ? 局部变量何时被释放 ? 该函数/过程结束时吗 ?
 
>>全局变量存放在哪儿(从内存角度) ? 全局变量何时被释放 ? 程序结束时还是该Unit
>>结束时(这两个结束是不是同时的?) ?
>>局部变量存放在哪儿(从内存角度) ? 局部变量何时被释放 ? 该函数/过程结束时吗 ?
没见个这样钻牛角尖的.
告诉你吧 都是这在 数据据区的.
 
全局变量在编译的时候分配空间,在Exe和DLL中已经有它们的位置了。
在Pe文件启动的时候被映射到内存中一段叫静态区的地方中,生存周期贯穿你进程的始终。

局部变量放在内存区域一段被成为‘栈’的地方,一般默认大小为1M,超过了
了报 'stack overflow'错误。它有系统自动管理,不需要你自己分配/释放。
在Delphi中它在函数/过程结束时释放,在C++中可以作到出了作用域就释放。
(在Delphi中内嵌汇编也能作到这一点)
 
后退
顶部