目的
参照される変数の現在の値によって使用される記憶域のバイト数を示す Fixed Bin(15) の値を返します。
構文
CURRENTSTORAGE(reference)
省略形:CURRENTSTORAGE を表す CSTG。
例
DCL A FIXED BIN(15) INIT (1); /* CSTG (A) = 2 */
DCL B CHAR(5) INIT ('XY'); /* CSTG (B) = 5 */
DCL C CHAR(5) VARYING INIT ('XY'); /* CSTG ©) = 4 */
DCL D BIT(4) INIT ('1010'B); /* CSTG (D) = 1 */
説明
固定長文字列およびその他の固定サイズの変数の場合、CURRENTSTORAGE 関数は、参照される変数に割り当てられたバイト数を示す Fixed Bin(15) の整数を返します。
可変長文字列は、テキスト フィールドおよび長さフィールドの 2 つの部分で構成されます。長さフィールドに常に 2 バイトが使用されるため、CURRENTSTORAGE は、現在使用されているテキスト フィールドのバイト数に 2 を加えた値を返します。
スカラー領域または領域の配列の要素の場合、CURRENTSTORAGE 関数は、領域の現在の範囲と領域ヘッダーのサイズの合計を返します。領域の末尾にある未割り当てのバイトは、領域の範囲の値には含まれません。ただし、ALLOCATE 操作および FREE 操作の結果として領域内にできた未割り当て部のサイズは含まれます。領域の配列の場合、CURRENTSTORAGE 関数は、配列の各領域要素のヘッダー バイトを含む配列の最大サイズを返します。