gpt4 book ai didi

cobol - 可变长度表中的内存分配

转载 作者:行者123 更新时间:2023-12-05 00:07:37 25 4
gpt4 key购买 nike

假设我在 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 服务。我不认为这种语言会死:(

最佳答案

您没有提到您使用的是哪个编译器,但是,至少在当前的 2002 年 COBOL 标准中,为 OCCURS...DEPENDING ON (ODO) 数据项分配的空间不需要是动态的。 (实际上只是数据项的出现次数,而不是长度有所不同。)虽然您的编译器供应商可能已经实现了对标准的扩展,但我不知道有任何供应商在这方面这样做了.

该标准的下一个但尚未批准的修订版包括对具有新 OCCURS DYNAMIC 格式的动态容量表的支持。

关于cobol - 可变长度表中的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com