COBOL2002 言語 拡張仕様編
COMPUTE文でアドレス名またはアドレスデータ項目にアドレスを設定または更新する。
| コンパイラオプションの指定 | 呼び出し規約 | コンパイルの結果 |
|---|---|---|
| -DynamicLink,Callオプションなし | CDECL | 正常終了 |
| STDCALL | リンクエラー | |
| -DynamicLink,Callオプションあり | CDECL | 正常終了 |
| STDCALL | コンパイルエラー |
DATA DIVISION.
WORKING-STORAGE SECTION.
77 KAKUNO ADDRESS.
PROCEDURE DIVISION.
COMPUTE KAKUNO = FUNCTION ADDR('SUB_PROGRAM').
IF KAKUNO = NULL
THEN DISPLAY 'SUB_PROGRAM NO LOAD'
END-IF.
| 定数1の指定 | プログラムのローディング状態 | ADDR関数で返される値 |
|---|---|---|
| 存在する外部プログラム名 | ロードされている | プログラムのアドレス |
| ロードされていない | NULL | |
| 存在しない外部プログラム名 | ロードされていない | NULL |
DATA DIVISION.
FILE SECTION.
FD INFIL BLOCK CONTAINS 5 RECORDS.
01 INREC.
02 HONTAI PIC X(10).
02 HUKA PIC X(20).
FD OUTFIL.
01 OUTREC.
02 FILLER PIC X(5).
02 OUTREC1 PIC 9(6).
02 FILLER PIC X(5).
02 OUTREC2 PIC Z,ZZZ,ZZ9.
WORKING-STORAGE SECTION.
01 HUKAREC ADDRESSED BY REC-AD1.
02 HUKAREC1 PIC 9(3).
02 HUKAREC2 PIC 9(7).
77 KAKUNO ADDRESS.
PROCEDURE DIVISION.
:
READ INFIL.
:
COMPUTE REC-AD1 = FUNCTION ADDR(HUKA). …(1)
MOVE HUKAREC2 TO OUTREC2. …(2)
:
COMPUTE KAKUNO = REC-AD1 …(3)
COMPUTE REC-AD1 = REC-AD1 + 10. …(4)
MOVE HUKAREC2 TO OUTREC2. …(5)All Rights Reserved. Copyright (C) 2003, 2017, Hitachi, Ltd.