2012年(18)
分类:
2012-04-14 22:32:15
原文地址:CALL、CALLB和CALLP的区别 作者:passthru
CALL、CALLB和CALLP的区别
(一)调用关系
call是动态调用,是程序与程序之间的调用;
callb是静态调用,只局限与一个程序bind的modules间的调用;
callp也是静态调用,可以在一个程序bind的modules之间调用,或在同一段程序代码(程序或module)中的procedure调用;也可以调用外部的modules,只要这个module在bind directory中有定义。
callp还有一种区别与call和callb的用法,如果这个module是在同一个程序中,callp操作符可以省略。如callp pgma(parm),可以直接调用为pgma(parm)。
(二)参数传递格式
call、callb可以以下两种方式传递参数:
1) 跟随传参,如call/callb PGMA(parm1,parm2,…prmn)
2) 用PLIST结构传参,如call/callb PlistName
callp pgma(parm1:parm2:…:parmn)
(三)调用功能
call和callp可以调用系统特殊子例程,如获取信息子例程。
callb则不能调用系统特殊子例程。
(待续)