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