COBOL关键字REDEFINES

lam*_*988 18 cobol

请问,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将指向相同的内存块.这允许您以不同的方式查看内存块.

在上面的例子中

  • WS_CHARGE_TXT_8X的值是"10000000"
  • WS_CHARGE_8的值为10000.000.

如果您将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等).