%ADDRESS 內建函數

位址內建函數 (%ADDRESS 或 %ADDR) 可用來變更或測試儲存在 CL 指標變數中的記憶體位址。

在 CHGVAR 指令中,您可以指定 %ADDRESS 函數來變更指標變數的值。 在 IF 指令上, %ADDRESS 函數可以在 COND 參數上指定,以檢查儲存在指標變數中的值。

位址內建函數的格式為:
%ADDRESS(variable name)
%ADDR(variable name)

在下列範例中,指標變數 &P1 起始設定為字元變數 &C1第一個位元組的位址。 稍後在程序中,會使用 %ADDRESS 函數檢查指標是否仍指向 &C1 ,如果沒有,則使用 %ADDRESS 函數將 &P1 重設為 CL 變數 &C1 的第一個位元組。

PGM
DCL &C1  *CHAR  10
DCL &P1   *PTR  ADDRESS(&C1)
:
IF COND(&P1 *NE %ADDRESS(&C1))  +
   THEN(CHGVAR  &P1  %ADDRESS(&C1))
:
ENDPGM      
附註: %ADDRESS 函數無法用來儲存儲存在指標變數中的位址偏移。 若要將位址偏移儲存在指標變數中,您需要使用 %OFFSET 內建函數。