被调用程序编写或在调用程序中定义变量?

Called program writing or defining variables in the calling program?

被调用程序是否可以定义新变量,调用程序可以从被调用程序 return 访问这些变量?我正在分析一些 Cobol 代码,发现在调用一个程序后,突然引用了一个在 -RET-CODE 中终止的变量,该变量在调用程序的任何地方都没有定义。

更新:它似乎是在字帖中定义的一个变量。请参阅答案中的评论。

不行,被调用程序不能给调用程序添加变量。

编译器可以预定义内部特殊变量。例如,在 Microfocus Extend 中,RETURN-CODE 变量始终可用,并将设置为 EXIT PROGRAM RETURNING return-value 语句中的值。

如果您需要的不仅仅是那个数值,那么您可以使用 BY REFERENCE 变量调用子程序。然后,您在两个程序中定义变量,在任何地方调用程序,在 LINKAGE SECTION.

中定义被调用程序