定義がどこにあるかによって、有効範囲が異なります。 有効範囲は、名前が認識されるソース行の範囲ことを表します。 有効範囲には、図 47 に示されているように、グローバルとローカルの 2 つのタイプがあります。
一般に、メイン・ソース・セクションに定義されたすべての項目はグローバルであり、し たがって、モジュール全体で認識されます。 グローバル定義は、モジュール内のメイン・プロシージャーと任意のサブプ ロシージャーの両方で使用することができる定義です。 それらはエクスポートすることもできます。
他方、サブプロシージャー内の項目はローカルです。 ローカル定義は、そのサブプロシージャーの内部でのみ認識される定 義です。項目がグローバル項目と同じ名前で定義された場合には、サブプロシージャー内 部でのその名前に対する参照ではローカル定義が使用されます。
ただし、以下の例外に注意してください。
場合によっては、グローバル定義とローカル定義を混合させることができます。 たとえば、KLIST および PLIST はグローバルにもローカルにもすることができます。 グローバル KLIST および PLIST と関連付けられたフィールドには、 グローバル・フィールドだけが入れられます。 ローカル KLIST および PLIST と関連付けられたフィールドには、グ ローバルとローカルの両方のフィールドを入れることができます。 サブプロシージャー内部での KLIST と KFLD の働きの詳細については、定義の有効範囲を参照してください。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.