データ項目の割り振りと初期化がどのように行われるかは、それらの項目が WORKING-STORAGE SECTION の項目であるか LOCAL-STORAGE SECTION の項目であるかによって異なります。
プログラムの WORKING-STORAGE は実行単位の開始時に割り振られます。
VALUE 節を持つすべてのデータ項目は、そのときに適切な値に初期化されます。 その実行単位の存続期間中、WORKING-STORAGE 項目はそれぞれ最後に使われた状態を維持します。例外は次のとおりです。
この場合、WORKING-STORAGE データ項目は、プログラムに入るたびに再初期化されます。
この場合、WORKING-STORAGE データ項目は、CANCEL 後のプログラムへの最初の再入時に再初期化されます。
WORKING-STORAGE は、実行単位の終了時に割り振り解除されます。
COBOL のクラス定義における WORKING-STORAGE については、 関連するタスクを参照してください。
LOCAL-STORAGE データの別のコピーがプログラムまたはメソッドの個々の呼び出しに対して割り振られ、プログラムまたはメソッドから戻る時点で 解放されます。 LOCAL-STORAGE 項目に対して VALUE 節を指定すると、起動または呼び出しのたびに、項目はその値に初期化されます。 VALUE 節を 指定しないと、項目の初期値は未定義になります。
スレッド化: 複数のスレッドで同時に実行されるプログラムは、それぞれの起動先が WORKING-STORAGE データの単一コピーへのアクセスを共用します。 LOCAL-STORAGE データは起動先ごとに個別のコピーを使用します。
関連タスク
メインプログラムまたはサブプログラムの終了と再入
マルチスレッド化のための COBOL プログラムの準備
クラス・インスタンス・データ定義用の WORKING-STORAGE SECTION
関連参照
Working-storage section (Enterprise COBOL 言語解説書)
Local-storage section (Enterprise COBOL 言語解説書)