请问,COBOL中关键字REDEFINES的用法是什么?我无法理解手册的定义.
以下代码是什么意思?
01 WS_CHARGE_TXT_8X PIC X(08) VALUE "10000000".
01 WS_CHARGE_NUM_8 REDEFINES WS_CHARGE_TXT_8X.
05 WS_CHARGE_8 PIC 9(05)V9(03).
Run Code Online (Sandbox Code Playgroud)
谢谢!
Bru*_*tin 20
基本上重新定义重用空格,因此在上面的示例中,WS_CHARGE_TXT_8X和WS_CHARGE_8将指向相同的内存块.这允许您以不同的方式查看内存块.
在上面的例子中
如果您将123.456移动到WS_CHARGE_8,则为WS_CHARGE_TXT_8X"00123456"的值.
一个更有用的例子是
03 Birth-Date-YYYYMMDD pic 9(8).
03 filler redefines Birth-Date-YYYYMMDD.
05 Birth-Date-YYYY pic 9(4).
05 Birth-Date-MM pic 99.
05 Birth-Date-DD pic 99.
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以单独访问整个日期 Birth-Date-YYYYMMDD或年/月/日(Birth-Date-YYYY等).