%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 內建函數。