25.4.3 ポインタ項目の参照
ポインタ項目の参照は次の場所に許される。
-
ポインタ比較の条件式中の左辺または右辺。
-
ポインタを設定するSET文の送り出し側作用対象または受け取り側作用対象。
-
CALL文BY VALUE指定。
- 〈この項の構成〉
(1) ポインタ比較の条件式
- 形式
- 機能
-
二つの項目のUSAGE(用途)が,明示的または暗黙的にPOINTERであれば比較できる。
この場合の演算子は,EQUALとNOT EQUALだけ使用できる。
構文規則
-
一意名1と一意名3は,連絡節,局所場所節または作業場所節で定義した01〜49,66または77レベルのデータ項目である。次に示すものは指定できない。
-
関数一意名とオブジェクトプロパティ
-
ファクトリ定義やインスタンス定義で定義されたデータ項目
-
オブジェクト参照や,強く型付けされた集団項目に従属する基本項目
-
-
一意名2と一意名4は,ポインタ項目でなければならない。
-
比較条件対象が両方とも表意定数NULLの場合,比較はしない。
-
一意名1と一意名3がブール項目のときは,バイト境界に調整しておかなければならない。
- 一般規則
-
二つのアドレスが同じ場合だけ等しい結果となる。それ以外の場合は等しくない。
(2) SET文
- 形式
- 機能
-
データ項目のアドレスをポインタ変数に割り当てるのに使用する。
構文規則
-
一意名1は,連絡節で定義した01レベルまたは77レベルの項目である。一意名1には,強く型付けされた集団項目を指定できない。
-
一意名1は,可変長項目であってはならない。
-
一意名1は,部分参照してはならない。
-
一意名3は,連絡節,局所場所節または作業場所節で定義した01〜49,66または77レベルの項目である。次に示すものは指定できない。
-
関数一意名やオブジェクトプロパティ
-
ファクトリ定義やインスタンス定義で定義されたデータ項目
-
オブジェクト参照データ項目や,強く型付けされた集団項目に従属する基本項目
-
強く型付けされた集団項目
-
-
一意名2と一意名4は,ポインタ項目である。
-
一意名3がブール項目のときは,バイト境界に調整しておかなければならない。
一般規則
-
TO指定中のポインタ項目のアドレスが,一意名2で表されたポインタ項目へ移される。一意名1がある場合,これに従属する任意の参照はTO指定が識別するアドレスを持つ項目を対象として実行される。TO指定が識別するアドレスは,一意名4に含まれるアドレスまたは一意名3のアドレスである。TO指定にNULLを書くとプログラムのどんなデータも指さないポインタとみなされる。
- 【標準仕様との関連】
-
「COBOL2002 言語 標準仕様編」 「10.8.43 SET文」