COBOL2002 使用の手引 手引編


30.3.1 スタック領域に配置されるデータ

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コンパイラが内部的に自動生成するものであり,またプログラムの内容に依存します。