R E G I O N A L 命 令

R E G I O N A L 命 令 - 图1创建局域变量和数组

语 法

#REGION nRegionNumber

REGIONAL VarList

参 数 描 述

#REGION nRegionNumber

R E G I O N A L 命 令 - 图2R E G I O N A L 命 令 - 图3R E G I O N A L 命 令 - 图4R E G I O N A L 命 令 - 图5R E G I O N A L 命 令 - 图6R E G I O N A L 命 令 - 图7R E G I O N A L 命 令 - 图8创 建 一 个 局 域 在 程 序 中 使 用 局 域 变 量 之 前 必 须 先 予 以 声 明 要 注 意 的 是#REGION 是 一 条 编 译 指 令 而 不 是 一 条 命 令 nRegionNumber 指 定 局 域 号取 值 范 围 为 0 到 31

REGIONAL VarList

R E G I O N A L 命 令 - 图9R E G I O N A L 命 令 - 图10声 明 #REGION 指 令 所 创 建 局 域 中 的 变 量 VarList 是 由 逗 号 分 隔 的 变 量 及 数组 的 列 表

R E G I O N A L 命 令 - 图11R E G I O N A L 命 令 - 图12R E G I O N A L 命 令 - 图13R E G I O N A L 命 令 - 图14R E G I O N A L 命 令 - 图15在程序的编译过程中 如果一个局域变量已做编译 而又遇到另一个同名的局域声明时 将使第二个出现的变量名唯一 以确保不与先前已声明的局域变量发生冲突

R E G I O N A L 命 令 - 图16R E G I O N A L 命 令 - 图17使变量名唯一的办法是用下划线和当前局域号填充局域变量名 使之达到 10 个字符

R E G I O N A L 命 令 - 图18R E G I O N A L 命 令 - 图19这种替代完全发生在程序编译过程中 对执行速度没有影响

R E G I O N A L 命 令 - 图20R E G I O N A L 命 令 - 图21R E G I O N A L 命 令 - 图22R E G I O N A L 命 令 - 图23R E G I O N A L 命 令 - 图24R E G I O N A L 命 令 - 图25变量名修改后 可以使用 DISPLAY MEMORY 命令显示修改后的变量名 为了在调试窗口中监控变量 应使用修改后的变量名 由于跟踪窗口使用原始的程序源代码 因而原始变量名 R E G I O N A L 命 令 - 图26 而不是由编译器创建的修改后的名称 R E G I O N A L 命 令 - 图27 出现在跟踪窗口中

说 明

R E G I O N A L 命 令 - 图28R E G I O N A L 命 令 - 图29R E G I O N A L 命 令 - 图30如果在局域中受保护 即使同名的变量或数组也不互相干扰 局域变量与私有变量相似

示 例

R E G I O N A L 命 令 - 图31R E G I O N A L 命 令 - 图32R E G I O N A L 命 令 - 图33R E G I O N A L 命 令 - 图34R E G I O N A L 命 令 - 图35R E G I O N A L 命 令 - 图36R E G I O N A L 命 令 - 图37R E G I O N A L 命 令 - 图38R E G I O N A L 命 令 - 图39R E G I O N A L 命 令 - 图40R E G I O N A L 命 令 - 图41R E G I O N A L 命 令 - 图42下面的示例创建了两套局部变量 在 region 1 中 创建了变量 gcA gcB gcC 和gcD 并都赋值 “ One ” 字符串 在 region 2 中 创建了变量 gcC gcD gcE 和gcF 并都赋值 “ Tw o” 字符串 变量 gcC 和 gcD 在两个区公用

R E G I O N A L 命 令 - 图43R E G I O N A L 命 令 - 图44R E G I O N A L 命 令 - 图45R E G I O N A L 命 令 - 图46R E G I O N A L 命 令 - 图47然后显示 DISPLAY MEMORY 的输出 在第二个区中修改变量 gcC 和 gcD 的名称gcC 变为 GCC________2, 并且 gcD 变为 GCD________2 所有的变量都是私有的 可被低级程序访问

#REGION 1

REGIONAL gcA,gcB,gcC,gcD STORE 'One' to gcA,gcB,cgC,gcD #REGION 2

REGIONAL gcC,gcD,gcE,gcF && gcC 和 gcD 对两个地区通用

STORE 'Two' to gcC,gcD,gcE,gcF DO showmemory

PROCEDURE showmemory

DISPLAY MEMORY LIKE g*

请 参 阅

PRIVATE , PUBLIC , STORE