DELPHI之全局变量和局部变量
2024-09-05 23:45:42
http://www.cnblogs.com/Stwo/archive/2011/07/11/2102816.html
DELPHI之全局变量和局部变量
全局变量:
如果我们在应用程序一个单元中的interface关键字和implementation关键字之间的区域,定义一个全局变量,假如这个单元在别的地方被引用,那么这个单元的全
局变量能够在别的地方被访问到,当然我们也可以在应用程序一个单元中的implementation关键字的后面定义全局变量,不过此时在这里定义的全局变量只能在本
单元中被访问到,也就是说它是这个单元私有的,在别的单元中将不能被访问到。全局变量在应用程序的数据区分配内存,它存在于可执行模块(EXE或DLL等)的
文件影像内部,在程序编译期就被决定,直到应用程序结束,全局变量所占用的内存地址是固定不变的。全局的非指针类型,声明后自动分配内存,并初始化值。
全局的指针类型,声明后不自动分配内存,值为nil。
局部变量:
我们可以在函数或方法(包含过程)中定义局部变量,局部变量在应用程序的栈上进行分配,并且总是在栈上分配!局部变量的内存是在函数或方法(包含过程)
被调用时分配,在函数或方法(包含过程)调用结束时其内存被释放。由于函数或方法(包含过程)在每次被调用时,栈顶可能发生变化,因此局部变量的内存地
址是变化的,局部的非指针类型,声明后自动分配内存,不初始化值,值不确定(取决与别的程序对这块内存的操作)。局部的指针类型,声明后不自动分配内存,
但会随机指向一个地址,所以地址不为nil
注:
这里我们不提倡用全局变量,而尽可能的用局部变量,假如必须用到全局变量,我们可以将这个全局变量在类(比如TForm)的成员区域声明或定义。
对于局部变量我们则应多加小心,由其是它在定义时不像全局变量一样被初始化,在程序中不注意则会隐藏巨大的风险,因此在使用局部变量时,一定要先
初始化,再使用!
最新文章
- HTML 5 音频
- CentOS7 配置阿里云yum源
- verilog断言(SVA:systemverlog assertion)语法 ---- 转载
- The import java.util cannot be resolved The import javax.servlet cannot be resolved
- [POJ1050]To the Max
- 制作支持UEFI PC的Server2008 R2系统安装U盘
- Mac键位设定和Xcode快捷键(自己总结,持续更新)
- jQuery uploadify-v3.1 批量上传
- spring beans的写入工具——spring-beans-writer
- MEF依赖注入调试小技巧!
- Oracle常见操作汇总(转)
- java.lang.IllegalArgumentException: Can't convert argument: null
- win8设置自动关机
- Flask 系列之 HelloWorld
- 微服务扩展新途径:Messaging
- 1062.Talent and Virtue
- VUE 实现复制内容到剪贴板功能
- Spring 基础概念——DI、IOC(一)
- [转载]linux 文件改名,移动
- 微信开发(一)SAE环境搭建