COBOL 恢复初始前状态

来源:百度知道 编辑:UC知道 时间:2024/06/19 23:31:47
关于COBOL语言,迷惑的几个问题,请精通COBOL语言的前辈指点。
问题1:
在COBOL语言里,很多自己定义的变量都要初始化(比如WK-变量),那么,在初始化之前(还没有做任何编辑),定义的变量是什么值?(是不是NULL?)

问题2(重点):
有没有办法把初始化后的自定义变量重新恢复到初始之前的状态?(比如有没有NULL常量什么的?)

请多多指教!

你学艺不精啊,其实不光COBOL是这样,大多数的编程语言都是这样,定义的变量要初始化,在初始化之前的值是随机的,即什么值都有可能。
我们知道,编程语言中的变量有静态的和动态的两种,这两种变量的不同只体现在分配区域和生存周期的不同,而分配方式都是相同的:在内存中开辟一块变量所需的区间即可,并不对这块区间进行所谓的初始化(这块区间是内存中的空闲区间,甚至也有可能是某个动态变量刚刚结束生存周期所释放的。同样,这个动态变量在生存周期结束、释放内存空间时,也不对要释放的这块区间进行什么初始化)。为了程序运行结果的正确,你要在程序中对变量进行适当的初始化,如:为了程序运行的需要,你有时要把变量初始化为ZERO,有时要把变量初始化为1,有时要把变量初始化为SPACE,有时要把变量初始化为LOW-VALUE,有时要把变量初始化为HIGH-VALUE等等,打印报表的时候,你可能还要把变量初始化为一些有特殊意义的字符等等。

至于你问题的重点,这是可以实现的,但恢复到初始之前的状态有意义吗?似乎没有。对变量进行初始化,本来就是为了确保程序运行结果的正确,至于它以前是什么值,有必要知道吗?
如果你非要重新恢复到初始化以前的状态,可采用形如以下的办法,做一个备份:
01 VARIABLE-LIST.
05 VAR1 PIC X(05).
05 VAR2 PIC 9(06).
05 VAR3 PIC A(10).

77 VARIABLE-BACKUP PIC X(21).

在PROCEDURE DIVISION中,
MOVE VARIABLE-LIST TO VARIABLE-BACKUP.(先备份)
MOVE SPACE TO VAR1
MOVE ZERO TO VAR2
MOVE SPACE TO VAR3.
再做初始化。你想恢复时,只需MOVE VARIABLE-BACKUP TO VARIABLE-LIST即可。

回答1
没初期化这个变量就还没有开辟空间,不能够利用
回答2
没有办法