サブプロシージャーは、メイン・ソース・セクションの後に定義されます。図 37 は、 サブプロシージャーを示し、その相違する部分を強調しています。
* Prototype for procedure FUNCTION D FUNCTION PR 10I 0 1 D TERM1 5I 0 VALUE D TERM2 5I 0 VALUE D TERM3 5I 0 VALUE P Function B 2 *------------------------------------------------------------- * This procedure performs a function on the 3 numeric values * passed to it as value parameters. * * This illustrates how a procedure interface is specified for a * procedure and how values are returned from a procedure. *------------------------------------------------------------- D Function PI 10I 0 3 D Term1 5I 0 VALUE D Term2 5I 0 VALUE D Term3 5I 0 VALUE D Result S 10I 0 4 /free Result = Term1 ** 2 * 17 + Term2 * 7 5 + Term3; return Result * 45 + 23; /end-free P E 6
定義仕様書のどこにでも入れることができるプロシージャー・インターフェース定 義を除き、サブプロシージャーは上記の順序でコーディングしなければなりま せん。
サブプロシージャーの場合には、サイクル・コードは生成されません。 したがって、次 のものをコーディングすることはできません。
演算仕様書は一度だけ処理され、演算仕様書の終わりでプロシージャーに戻ります。 詳細については、サブプロシージャー演算を参照してください。
サブプロシージャーはエクスポートすることができますが、これは、プログラム 内の他のモジュールにあるプロシージャーでそれを呼び出すことができることを 意味します。 サブプロシージャーがエクスポートされることを指示するためには、「プロシー ジャーの始め」の指定でキーワード EXPORT を指定してください。 これを指定しなかった場合には、サブプロシージャーはモジュールの中からしか 呼び出すことができません。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.