变量的作用域是指变量可以被识别的范围。
1 公有变量和私有变量
一般Delphi的单元具有下面的结构
§unit 单元名 //单元首部
§interface //单元接口部分
§implementation //单元实现部分
§end. //单元结束
在单元的接口部分(Interface)声明的变量属于公有变量,不仅可以被本单元中的所有过程和函数使用,同时还可以被其他单元中的过程和函数使用。在单元的实现部分后
声明的变量属于私有变量,不能被其他单元使用。
2 全局变量和局部变量
局部变量是指在过程或函数的内部声明的变量;而定义在单元的实现部分的变量,对整个单元内部的过程和函数都是有效的,是全局变量。公有变量也是全局变量。当全局变量和局部变量的名称相同时,在过程和函数的内部,使用的是局部变量的值。
3 变量的存储方式
从空间上来讲,全局变量的作用范围是整个程序,局部变量仅在本程序段内部有效。
从变量的存储时间上来看,全局变量是静态存储,局部变量是动态存储。所谓的静态存储是变量在程序运行期间一直占有固定的存储空间,直到整个程序结束变量所占用的空间才释放。而动态存储则是程序在运行期间根据需要动态的分配存储空间,子程序一旦结束,变量所占有的存储空间立即释放。
一般内存中供程序使用的区域可以分为三个部分,程序区,静态存储区和动态存储区。在动态存储区中存放的数据有:函数或过程的形式参数,函数和过程内部声明的局部变量以及函数和过程调用时的现场保护和返回地址等