HANDLE 属性を使用して、変数を構造体タイプへの ポインターとして宣言することができます。 そのような変数はハンドル と呼ばれます。
|
定義された構造体と同様に、ハンドルはタイプが強く付きます。 ハンドルは同じ構造体タイプのハンドルについてのみ、 割り当てられ、比較することができます。 ハンドルについての算術演算はできません。
ADDR 組み込み関数を使用して、タイプ付き構造体のアドレスを ハンドルに割り当てることはできません。 ADDR 組み込み関数はポインターを戻し、そのポインターを ハンドルに割り当てることができないからです。 ただし、HANDLE 組み込み関数は、その引数としてタイプ付き 構造体を取り、そのタイプにハンドルを戻します。 以下の例では、*** ページで定義された tm 構造体タイプを使用しており、tm タイプを見付ける ハンドルが宣言され、Daterec のアドレスがそのハンドルに割り当てられます。
dcl P_Daterec handle tm; dcl Daterec type tm; P_Daterec = handle(Daterec);
ハンドルは POINTERVALUE 組み込み関数を使用して、 ポインターに変換することができます。