IBM Enterprise COBOL z/OS v6.1.0中WORKING-STORAGE未设VALUE子句数据项初始化问询
IBM Enterprise COBOL for z/OS v6.1.0中WORKING-STORAGE未指定VALUE的数据项初始化规则
在IBM Enterprise COBOL for z/OS v6.1.0环境下,WORKING-STORAGE段里未指定VALUE子句的数据项,不会被保证初始化为零。
Language Environment(LE)负责为WORKING-STORAGE分配内存,但这块内存是操作系统回收的闲置区域,里面可能残留着之前程序运行留下的垃圾数据。你遇到的W-Idx PIC 99 COMP-5有时是0有时是1,就是因为每次分配到的内存区域残留值不同导致的。
给你两个实用建议:
- 直接给索引、计数器这类关键变量加VALUE子句显式初始化,比如写成
W-Idx PIC 99 COMP-5 VALUE 0.,这是最稳妥的方式 - 如果需要初始化的变量较多,也可以在PROCEDURE DIVISION开头用MOVE语句批量初始化所有需要初始值的变量,避免遗漏
内容的提问来源于stack exchange,提问作者Itsbananas
相关产品推荐
相关产品推荐

