我想在链接节中指定一个单字节区域。程序A可以像这样调用程序B
call 'PROGB' using mycopybook其中mycopybook一次可以是500字节,下一次可以是2000字节,等等。
避免知道/保留程序B的链接部分中预期的最大字节数的一种“简单”方法是将其定义为一个字节(毕竟,程序B的链接部分只是指向内存中mycopybook的指针,不多也不少)。问题是,当我尝试使用以下代码编译程序B时
LINKAGE SECTION.
01 copybook-1 pic x.
procedure division using copybook-1.
display 'First 4 bytes passed in 'copybook-1(1:4)我得到一个编译错误。
progent.cbl: 113:错误:'copybook-1‘的长度超出界限:4
是否有一些相当于NOSSRANGE的COBC参数?
(FWIW,在Micro Focus的Mainframe Express中,我工作的默认位置是SSRANGE,所以我必须专门为上面的示例设置NOSSRANGE,但之后就没有问题了)
发布于 2019-07-04 02:22:01
是否有一些等同于NOSSRANGE的
参数?
答:不,目前还没有。您可能会因为在编译时不检查边界而使用create a feature-request,甚至可以使用provide a patch。
GnuCOBOL确实有一个启用所有运行时检查的选项:--debug,使用它类似于编译和运行时的SSRANGE(2)检查,但不使用它与NOSSRANGE不同,因为编译时检查是无条件完成的;您只能禁用编译时常量折叠,如field (1-1:5) by -fno-constant-folding,这将不会引发问题,但field (0:5)将始终这样做。
如果一般情况下可以禁用它,那么当然可以调整编译器(cobc/typeck.c)并删除这些检查,但使用开关会更好!
https://stackoverflow.com/questions/56866908
复制相似问题