假设我在WORKING-STORAGE
...中定义了以下可变长度表
01 SOAP-RECORD.
05 SOAP-INPUT PIC X(8) VALUE SPACES.
05 SOAP-STATUS PIC 9 VALUE ZERO.
05 SOAP-MESSAGE PIC X(50) VALUE SPACES.
05 SOAP-ITEMS OCCURS 0 TO 500 TIMES
DEPENDING ON ITEM-COUNT
INDEXED BY ITEM-X.
10 SI-SUB-ITEMS OCCURS 0 TO 100 TIMES
DEPENDING ON SUB-COUNT
INDEXED BY SUB-X.
15 SS-KEY PIC X(8) VALUE SPACES.
15 SS-AMOUNT PIC -9(7).99 VALUE ZEROS.
15 SS-DESCR PIC x(100) VALUE SPACES.
当这个程序运行时,它最初会分配该表可能需要的尽可能多的空间,还是在分配内存方面更加动态?我猜想该DEPENDING ON
子句会使其更具动态性,因为它会随着ITEM-COUNT
变量的增加分配更多的内存。一位同事告诉我不是这样,但他不是 100% 确定。所以我真的很想知道这是如何工作的,以便尽可能有效地构建我的程序。
PS:是的,我正在编写一个新的 COBOL 程序!它实际上是一个 CICS Web 服务。我认为这种语言永远不会消亡:(