IBM Extension
IBM Extension

POINTER 句

USAGE IS POINTER 文節を使って定義されたデータ項目は、ポインター・データ項目です。

ポインター・データ項目とは、基底アドレッシングに使用できる 16 バイト基本項目のことです。 ポインター・データ項目は、等しいかどうかを比較したり、他のポインター項目に移したりすることができます。

ポインター・データ項目は、以下でしか使用できません。
  • SET ステートメント (形式 5 および形式 7 のみ)
  • 関係条件
  • CALL ステートメントまたは手続き部ヘッダーの USING 句
  • ADDRESS OF または LENGTH OF を含む式
  • 組み込み関数の引数

USAGE IS POINTER 文節は、66 と 88 を除くすべてのレベルで書くことができます。

グループ項目が USAGE IS POINTER 文節で記述されているなら、そのグループ内の基本項目はポインター・データ項目です。 ただし、そのグループ自身はポインター・データ項目ではなく、ポインター・データ項目が許可されている構文中では使えません。

ポインター・データ項目は、MOVE ステートメントまたは I/O ステートメントの中で参照されているグループの一部になることがあります。 しかし、ポインター・データ項目がグループの一部である場合、ステートメント実行時にポインター値が別の内部表記に変換されることはありません。

ポインター・データ項目は、REDEFINES 文節のサブジェクトまたはオブジェクトになることがあります。

ポインター・データ項目の VALUE 文節は、NULL または NULLS だけを含めることができます。

ポインター・データ項目はクラスまたはカテゴリーに属しておらず、条件変数として使用することはできません。

文節 JUSTIFIED、PICTURE、SIGN、TYPE、BLANK WHEN ZERO、および FORMAT を使用して USAGE IS POINTER 文節で定義されているグループ項目または基本項目を記述することはできません。

ポインター・データ項目は、CORRESPONDING 操作においては無視されます。

ポインター・データ項目をファイルに書くことができますが、そのポインター・データ項目を含むレコードを後で読んだ場合、その項目はもはや有効なアドレスを表すことにはなりません。

USAGE IS POINTERは、 ADDRESS OF 特殊レジスターには暗黙で指定されます。

ILE COBOL ポインター・データ項目を通常の数字として扱うことはできません。

End of IBM Extension
End of IBM Extension