ILE COBOL 解説書
+----------------------------------IBM 拡張----------------------------------+
PROCEDURE-POINTER
句で定義されたデータ項目は、プロシージャー・ポインター・データ項目です。
それは、次のような、ILE
プロシージャーまたはプログラム・オブジェクトへの入り口点のアドレス (*PGM)
の入った 16 バイトの基本項目です。
- コンパイル単位内にあってしかも PROGRAM-ID ステートメントで定義された、
最も外側の ILE COBOL プログラム (ILE プロシージャー) の入り口点
- ILE C の関数 (ILE プロシージャー) など の、COBOL
以外のプログラムの入り口点
- プログラムの入り口点 (*PGM)
プロシージャー・ポインター・データ項目は、以下のものだけに使用できます。
- SET ステートメント
- 関係条件
- CALL ステートメントの USING 句または手続き部ヘッダー
- ADDRESS OF および LENGTH OF を含む式
- ターゲットとしての CALL ステートメント
- 組み込み関数の引数
ポインター・データ項目と同様、プロシージャー・ポインター・データ項目も位置合わせしなければなりません。
関連情報
- USAGE IS PROCEDURE-POINTER 文節は、レベル 88 では記述できません。
- USAGE IS PROCEDURE-POINTER 文節内で記述されたグループ項目では、
そのグループ内の基本項目はプロシージャー・ポインター・データ項目になります
(グループそのものはプロシージャー・ポインターにはなりません)。
- 基本項目の USAGE 文節は、その項目が属するグループの USAGE
文節に矛盾するものであってはなりません。
- プロシージャー・ポインター・データ項目は、MOVE
ステートメントまたは入出力ステートメントで参照されるグループの一部であってもかまいません。
しかし、そのステートメントの実行時に値の変換は行われません。
- プロシージャー・ポインター・データ項目は、ファイルに書き込むことはできますが、
プロシージャー・ポインターを含んだ同じレコードを後で読み出すと、その項目はもう正しいアドレスを示しません。
- GLOBAL、EXTERNAL、OCCURS、SYNCHRONIZED、および LIKE 文節を、USAGE IS
PROCEDURE-POINTER と一緒に使うことができます。
- プロシージャー・ポインターは、REDEFINES
文節のサブジェクトになることもオブジェクトになることもあります。
- プロシージャー・ポインター・データ項目の VALUE 文節には、NULL または NULLS
しか含められません。
- 文節 JUSTIFIED、PICTURE、TYPE、BLANK WHEN ZERO、および FORMAT は、USAGE IS
PROCEDURE-POINTER
文節で定義されたグループ項目または基本項目を記述することはできません。
- プロシージャー・ポインター・データ項目は、条件変数になることも、どのクラスまたはカテゴリーに属することもできず、CORRESPONDING
操作では無視されます。
+------------------------------End of IBM 拡張-------------------------------+
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]