链接两个MSBASIC程序的方法
在设计一个较大的程序时,经常根据程序的功能把它分解成若干个模块,每个模块完成一个特定的子功能,这些模块集成起来就组成一个可供运行的整体,这种模块的集成就叫链接技术。
在进行模块链接时,涉及到链接程序和被链接程序两个概念。链接程序是指内存中原有的程序,被链接程序是指磁盘上待读入内存并将执行的程序。链接语句的格式是:
CHAIN [MERGE]<被链接程序名>[,[行号][,[ALL][DELETE<范围>]]]
根据模块间有无数据<又称为参数>传递,把链接分为有参模块的链接和无参模块的链接。
(1)有参模块的链接
进行有参模块的链接时,为了将指定的变量传递给被链接程序,一般可用两种方法实现,一种是使用CHAIN语句中的ALL选项,另一种是使用COMMON语句说明。COMMON语句的格式为:
COMMON<变量1>[,<变量2>],……,<变量N>]
COMMON语句常与CHAIN语句联用,其位置最好放在CHAIN语句的前面或程序的开头。
例如:100 CHAIN“SBA1”,ALL 表示把所有变量传递到被链接程序SBA1中去。
又如:500 COMMON A,M(),C$
510 CHAIN “SBA2”
表示仅把变量A、数组M和字符串变量C$传送到被链接程序SBA2中去。
(2)无参模块的链接
当CHAIN语句中无ALL选择项,又无COMMON语句相配合,则这种情况就叫无参链接。例如:
200 CHAIN “A:SBA”
执行此语句后,当前原程序文件从内存中消失,同时清除为它而开设的所有缓冲区和关闭当前所有文件,并删除所有当前的变量和数组,而后把A盘中的被链接程序“SBA”调入内存,并从它的起始行开始执行。