BY CONTENT
有什么区别和 BY VALUE
在 CALL
COBOL 中的语句?
最佳答案
BY CONTENT
在 CALL
将标识符的内容复制到编译器管理的存储区域,然后将隐式地“通过引用”传递给 CALLed 程序。
这意味着 CALLed 程序可以更改数据,但在 CALLed 程序中所做的任何更改都不会影响 CALLing 程序中的原始数据。
对于编译器有效的任何大小的任何标识符都可以按 CONTENT 使用(受任何限制,如果存在,这些限制是为特定编译器记录的 - 你永远不知道)。
尽管您可以更改 CALLed 程序中的值,但这样做充其量似乎有点晦涩难懂。BY VALUE
是一种完全不同的野兽。它非常有限,因为“传递”的值可以是“整数”或一字节的字母数字值。它也可以是文字。PROCEDURE DIVISION USING ...
必须知道,在 BY VALUE 的情况下,就是这样,通过以与 CALL 等效的方式指定它。 CALL 上的 BY REFERENCE 和 BY CONTENT 都是 BY REFERENCE 上的 PROCEDURE DIVISION USING。
这是如何实现的取决于特定的编译器。 IBM Enterprise COBOL 将值本身放在“参数列表”中。
关于cobol - CALL 语句中的 BY CONTENT 和 BY VALUE 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32679345/