请问在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).
谢谢!
最佳答案
基本上,重新定义会重用空间,因此在上面的示例中,WS_CHARGE_TXT_8X
和WS_CHARGE_8
将指向相同的内存块。这样,您就可以以不同的方式查看一个内存块,在这种情况下,该变量可以视为文本PIC X和带符号的数字PIC S9。变量名中的-8X到-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.
在这种情况下,您可以分别访问整个日期Birth-Date-YYYYMMDD或年/月/日(Birth-Date-YYYY等)。
关于cobol - COBOL关键字REDEFINES,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5269899/