You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非限定数据结构字段能否被限定引用?DS1需加QUALIFIED才能编译吗?

RPGLE非限定数据结构的字段引用问题

问题解答

  • 不能对非限定数据结构的字段进行限定引用。非限定数据结构(未添加QUALIFIED关键字)的字段会直接暴露在全局作用域中,只能通过字段名(比如FIELD1)直接访问,无法使用数据结构名.字段名的格式。
  • 你提供的代码必须为DS1添加QUALIFIED关键字才能编译。因为代码中使用了DS1.FIELD1这种限定引用的写法,只有添加QUALIFIED后,编译器才会识别这种格式,允许通过数据结构名来限定访问其字段。

修正后的可编译代码如下:

**FREE

DCL-DS DS1 QUALIFIED;
 FIELD1 PACKED(5);
END-DS;

DS1.FIELD1 = 2024; 

DSPLY DS1.FIELD1;

RETURN;

关于有人断言原代码可以编译的情况,大概率是混淆了限定与非限定数据结构的用法,或是误记了旧版本编译器的特殊行为。当前主流的RPGLE编译器(包括PUB400使用的版本)都严格遵循规则:非限定数据结构不支持点号式的限定引用。

内容的提问来源于stack exchange,提问作者Osama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:23:11