Enterprise COBOL for z/OS, V4.2, Language Reference
Quando uma área é redefinida, todas as descrições da área estão sempre em vigor; isto é, a redefinição não substitui uma descrição anterior.
Portanto, se B REDEFINES C for especificado, uma das duas instruções processuais MOVE X TO B ou MOVE Y TO C poderá ser executada em qualquer ponto do programa.
No primeiro caso, a área descrita como B receberia o valor e o formato de X.
No segundo caso, a mesma área física (descrita agora como C) receberia o valor e o formato de Y.
Observe que, se a segunda instrução for executado imediatamente após o primeiro, o valor de Y substitui o valor de X na única área de armazenamento.
O uso de um item de dados redefinido não precisa ser igual ao de um item redefinido.
No entanto, isso não causa nenhuma alteração no formato ou no conteúdo dos dados existentes.
Por exemplo:
05 B PICTURE 99 USAGE DISPLAY VALUE 8.
05 C REDEFINES B PICTURE S99 USAGE COMPUTATIONAL-4.
05 A PICTURE S99 USAGE COMPUTATIONAL-4.
A redefinição de B não altera a configuração de bits dos dados na área de armazenamento.
Portanto, as duas instruções a seguir produzem resultados diferentes:
ADD B TO A
ADD C TO A
No primeiro caso, o valor 8 é adicionado a A (porque B possui USAGE DISPLAY).
Na segunda instrução, o valor -3848 é adicionado a A (porque C possui USAGE COMPUTATIONAL-4) e a configuração de bit da área de armazenamento tem o valor
binário -3848.
Este exemplo demonstra como o uso inadequado da redefinição pode fornecer resultados inesperados ou incorretos.
© Copyright IBM Corp.