被调用程序编写或在调用程序中定义变量?
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
.
中定义被调用程序
被调用程序是否可以定义新变量,调用程序可以从被调用程序 return 访问这些变量?我正在分析一些 Cobol 代码,发现在调用一个程序后,突然引用了一个在 -RET-CODE
中终止的变量,该变量在调用程序的任何地方都没有定义。
更新:它似乎是在字帖中定义的一个变量。请参阅答案中的评论。
不行,被调用程序不能给调用程序添加变量。
编译器可以预定义内部特殊变量。例如,在 Microfocus Extend 中,RETURN-CODE
变量始终可用,并将设置为 EXIT PROGRAM RETURNING return-value
语句中的值。
如果您需要的不仅仅是那个数值,那么您可以使用 BY REFERENCE
变量调用子程序。然后,您在两个程序中定义变量,在任何地方调用程序,在 LINKAGE SECTION
.