目的
領域を基準としてポインターから派生したオフセット値を返します。
パラメーター
p は基底付き変数を識別するポインター参照で、a は基底付き変数を含む領域です。
例
DECLARE (A, B) AREA;
DECLARE (A1, A2) CHAR(20) BASED;
DECLARE (P1, P2) POINTER;
DECLARE (O1, O2) OFFSET(A);
DECLARE (O3, O4) OFFSET(B);
ALLOCATE A1 IN(A) SET(O1);
ALLOCATE A2 IN(A) SET(O2);
B = A; /* assign area */
P1 = ADDR(O1->A1); /* address of A1 in A */
P2 = POINTER(O2, B); /* address of A2 in B */
O3 = OFFSET(P1, A); /* offset value of A1 -
same in A and B */
O4 = OFFSET(P2, B); /* offset value of A2 -
same in A and B */
説明
OFFSET 関数は、領域変数内に格納された基底付き変数の相対バイト オフセットを示すオフセット値を返します。
p が Null ポインター値の場合、OFFSET 関数は Null オフセット値を返します。