Cobol で redefines ステートメントがどのように使われるのか?

COBOLのREDEFINESは、変数やデータ群を定義するために用いられる特別な文であり、同一のメモリ位置に対して複数の名前を定義することを可能にする。

REDEFINES ステートメントの構文は次のとおりです。

REDEFINES data-item-1
[ALIGNED]
[USAGE IS USAGE-TYPE]
[PICTURE IS picture-1]
[JUSTIFIED [LEFT | RIGHT]]
[SIGN IS SIGN-TYPE]
[BLANK WHEN ZERO]
[SYMBOLIC CHARACTERS ARE character-string-1]
[VALUE IS value-1]
[EXTERNAL]
[GLOBAL]
[LINKAGE]
[COMMON]

再定義の対象となるデータアイテムで、変数またはデータセットを取り得る

REDEFINES文を使用すれば、同じメモリ位置に別のデータ項目に別の名前を定義することができます。そのうち1つのデータ項目の値が変更されると、その他のデータ項目も連動して更新されます。

REDEFINES文は、異なるデータ型の間でメモリを共有する主な目的があり、異なるデータ項目名を異なるコンテキストで使用できます。これは、バイナリデータの処理、データ型の変換、またはデータ構造でのメモリの共有に非常に便利です。例えば、バイナリフィールドに格納された数値をREDEFINESを使用して定義し、テキストレポートで使用するためにキャラクタ型フィールドとして再定義できます。

REDEFINES文を使用すると、どちらか一方のデータ項目しか操作したり代入したりできず、しかもデータ項目の配置方法や記憶レイアウトが変わってしまうため、データ型変換やデータ配置に関する要求を十分に検討する必要があります。

bannerAds