首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NOSSRANGE的GnuCobol等价

NOSSRANGE的GnuCobol等价
EN

Stack Overflow用户
提问于 2019-07-03 17:23:07
回答 1查看 23关注 0票数 0

我想在链接节中指定一个单字节区域。程序A可以像这样调用程序B

代码语言:javascript
复制
call 'PROGB'   using mycopybook

其中mycopybook一次可以是500字节,下一次可以是2000字节,等等。

避免知道/保留程序B的链接部分中预期的最大字节数的一种“简单”方法是将其定义为一个字节(毕竟,程序B的链接部分只是指向内存中mycopybook的指针,不多也不少)。问题是,当我尝试使用以下代码编译程序B时

代码语言:javascript
复制
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,但之后就没有问题了)

EN

回答 1

Stack Overflow用户

发布于 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)并删除这些检查,但使用开关会更好!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56866908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档