前几天在测试一个程序的时候,一个CASE本来应该是正常结束的,但却出了个ABEND CODE S0C7(数据异常).检查后发现错误出现在一个名为WS-CCC数据项上,WS-CCC是一个“常量”(COBOL没有常量,这里只是概念上的常量,意思是在程序中不去改变它的值)。正常情况下它在内存中应该是x'F1F0F0F0',实际上却不是如此。


数据项类似于:

05  WS-TABLE            OCCURS 30 TIMES.

  10  WS-AAA             PIC X(4).

  10  WS-BBB             PIC 9(4).

05  WS-CCC               PIC 9(4) VALUE 1000.


COBOL是不会检查TABLE是否越界的。比如上面定义的TABLE是有30个元素的,MOVE 'ABC' TO WS-BBB(31)是不会有任何编译或运行问题的,但却覆盖了跟在TABLE后面的内存区.

MainFrame知识小结(20110925)--cobol中table越界

相关文章:

  • 2021-08-07
  • 2021-11-04
  • 2021-08-20
  • 2021-06-30
  • 2022-12-23
  • 2021-08-20
  • 2021-12-06
  • 2022-12-23
猜你喜欢
  • 2021-10-23
  • 2022-01-29
  • 2021-10-23
  • 2022-02-06
  • 2021-07-07
  • 2021-09-19
  • 2021-11-06
相关资源
相似解决方案