30.3.1 スタック領域に配置されるデータ
COBOLプログラム実行時にスタック領域に配置されるデータを次に示します。
-
局所場所節に定義したデータ項目
-
連絡節に定義したデータ項目
-
COBOLプログラムが内部的に使用するデータ
(1) 局所場所節に定義したデータ項目
局所場所節に定義したデータ項目はスタック領域に配置します。データの配置については,マニュアル「COBOL2002 言語 標準仕様編」 「4.4.1 機種によらないデータ記述」を参照してください。局所場所節に非常にサイズの大きいデータを定義した場合,スタック領域が不足するおそれがありますので注意してください。
(2) 連絡節に定義したデータ項目
連絡節に定義したデータ項目はスタック領域に配置します。配置するサイズは,手続き部のUSING/RETURNING指定によって異なります。
(a) BY REFERENCE指定のデータ項目
-
参照渡しの場合
配置するサイズはポインタサイズ(4バイト)※1となります。手続き部のUSINGに指定したデータの数だけポインタサイズを配置します。
-
内容渡しの場合
配置するサイズは,定義したデータ項目のサイズ(4バイト境界に切り上げ)※2とポインタサイズ(4バイト)※1を合計した値となります。
なお,サイズが非常に大きいデータを定義した場合は,スタック領域が不足するおそれがあるため注意してください。
- 注※1
-
AIX(64),Linux(x64)の場合では8バイトとなります。
- 注※2
-
AIX(64),Linux(x64)の場合は8バイト境界に切り上げます。
(b) BY VALUE/RETURNING指定のデータ項目
配置するサイズは,定義したデータ項目のサイズ(4バイト境界に切り上げ)※となります。スタック領域に定義したデータ項目の値をそのまま配置します。データの配置については,マニュアル「COBOL2002 言語 標準仕様編」 「4.4.1 機種によらないデータ記述」を参照してください。
なお,サイズが非常に大きいデータを定義した場合,スタック領域が不足するおそれがあるため注意してください。
- 注※
-
AIX(64),Linux(x64)の場合は8バイト境界に切り上げます。
(3) COBOLプログラムが内部的に使用するデータ
COBOLプログラムで明示的に定義したデータ項目以外に,COBOLプログラムが内部的に使用するデータがあります。このデータはプログラムを実行するために必要なデータです。このデータはCOBOLコンパイラが内部的に自動生成するものであり,またプログラムの内容に依存します。