使用过程和函数指针

过程指针 是使用 USAGE IS PROCEDURE-POINTER 子句定义的数据项。 函数指针 是使用 USAGE IS FUNCTION-POINTER 子句定义的数据项。

关于此任务

在本信息中, 指针 指的是过程指针数据项或函数指针数据项。 可以将其中任一数据项设置为包含以下入口点的入口地址或指向这些入口点的指针:

  • 另一个没有嵌套的 COBOL 程序。
  • 以另一种语言编写的程序。 例如,要接收 C 函数的条目地址,请使用 CALL 语句的 CALL RETURNING 格式调用该函数。 它返回一个指针,您可以使用 SET 语句的格式将该指针转换为过程指针。
  • 另一个 COBOL 程序的备用入口点(在 ENTRY 语句中定义)。

只能使用 SET 语句来设置指针数据项。 例如:


CALL 'MyCFunc' RETURNING ptr.
SET  proc-ptr  TO ptr.
CALL proc-ptr  USING dataname.

假设您将指针项设置为由 CALL identifier 语句调用的装入模块中的条目地址,并且您的程序稍后将取消该调用模块。 指针项变为未定义,此后对其的引用不可靠。

相关参考资料    
地址
      
程序指针短语 (COBOL for Linux® on x86 语言参考)  
SET语句 (COBOL for Linux on x86 语言参考)