ADDRDATA 関数は、指定した変数 x で参照される記憶域へのポインターを返します。ADDR と動作が似ていますが、x が可変文字列への参照である場合を除きます。この場合、ADDRDATA は文字列の最初のデータ バイトのアドレスを返します。
myprog: proc options (main);
dcl str char(12) var init ('abcdefgh');
dcl s char (4) based;
dcl i fixed bin (15) init (99);
dcl fb15 fixed bin (15) based;
dcl p ptr;
p = addrdata(str);
put skip list (addrdata(i)->fb15, addr(str)->fb15, p->s,
ptradd(addrdata(str),4)->s);
end;
Results in:
99 8 abcd efgh