(delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)

13.1 全局数据、栈和堆**

​ 任何平台上的任何 Object Pascal 应用程序所使用的内存可以分为两个部分:代码和数据。就代码部分而言,程序可执行文件的指令部分、资源(如位图和窗体描述)以及程序使用的库都加载到其内存空间中。这些内存块是只读的,并且在某些平台(如 Windows 上)它们可以在多个进程之间共享。

​ 更有趣的是数据部分。Object Pascal 程序的数据(与大多数其他语言编写的程序一样)存储在三个明显不同的区域中:全局内存、栈和堆。

13.1.1 全局内存

​ 当 Object Pascal 编译器生成可执行文件时,它会程序在整个生命周期中存储存变量所需的空间。在一个Unit的interface或implementation中声明的全局变量属于此类别。请注意,如果全局变量是类类型(也包括字符串或动态数组),则只存储全局内存中的 4 字节或 8 字节对象引用。

​ 您可以在编译程序后使用 Project | Information 菜单项来确定全局内存的大小。您要查看的具体字段是数据大小。图 13.1 显示了近 50K 全局数据(48,956 字节)的使用情况,其中包括程序及其使用的库的全局数据。

图 13.1:已编译程序的信息

​ 全局内存有时被称为静态内存,因为一旦程序加载,变量将保留在原来的位置,因此在程序的生命周期内永远不会释放这些内存。

13.1.2

​ 栈是一个动态内存区域,按照后进先出(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值