子程序的命名通常和普通程序的命名方式相同。但是需要注意的是,对于子程序而言,不可将其前缀命名为以下这几个名字。

AFB           AFH           CBC          CEE          EDC

IBM            IFY             IGY            IGZ            ILB

实际上,以上名字都属于IBM相关产品的名字。如果将子程序的前缀命名为以上名字,则在主程序中将不能对其进行调用。当在主程序中试图调用该子程序时,系统将会从IBM的库,或者编译器例程中寻求解决方案。

静态调用

下面通过具体的程序示例,以便更好地说明静态调用的特点及用法。首先,假设在静态调用中,某一主程序代码如下。

IDENTIFICATION   DIVISION.


PROGRAM-ID      STATIC-MAIN.


AUTHER           XXX.


*


ENVIRONMENT   DIVISION.


*


DATA  DIVISION.


WORKING STORAGE SECTION.


77   TEST-NUM     PIC  99.


*


PROCEDURE   DIVISION.


PERFORM  INIT-TEST-NUM.


CALL   ‘STATIC-SUB’   USING    TEST-NUM.


DISPLAY ‘TEST-NUM AFTER THE FIRST CALL: ’  TEST-NUM.


PERFORM  INIT-TEST-NUM.


CALL   ‘STATIC-ENTRY’   USING  TEST-NUM.


DISPLAY ‘TEST-NUM AFTER THE SECOND CALL: ’  TEST-NUM.


STOP RUN.


INIT-TEST-NUM.


MOVE  10  TO  TEST-NUM.


令该程序的子程序,即与之所对应的被调用程序STATIC-SUB的代码如下。


IDENTIFICATION   DIVISION.


PROGRAM-ID      STATIC-SUB.


AUTHER           XXX.


*


ENVIRONMENT   DIVISION.


*


DATA  DIVISION.


WORKING STORAGE SECTION.


01   PLUS-NUM     PIC  99   VALUE  15.


 LINKAGE SECTION.


 77   MAIN-NUM     PIC  99.


*


PROCEDURE   DIVISION   USING  MAIN-NUM.


ADD   MAIN-NUM  TO  PLUS-NUM.


MOVE  PLUS-NUM  TO  MAIN-NUM.


GOBACK.


    ENTRY  ‘STATIC-ENTRY’   USING  MAIN-NUM.


ADD   MAIN-NUM  TO  PLUS-NUM.


MOVE  PLUS-NUM  TO  MAIN-NUM.


GOBACK.


以上程序运行后,将有如下输出结果。


TEST-NUM AFTER THE FIRST CALL: 25


TEST-NUM AFTER THE SECOND CALL: 35
View Code

相关文章:

  • 2022-12-23
  • 2021-10-29
  • 2022-12-23
  • 2022-12-23
  • 2021-09-16
  • 2021-05-30
  • 2022-12-23
  • 2021-11-25
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
  • 2021-06-04
相关资源
相似解决方案