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

如何在RPGLE /free中使用C风格返回值语法返回参数

在RPGLE /FREE环境下实现C风格返回值语法

在RPG开发中,若要避免通过参数列表传递返回值,采用类似C语言的直接返回值语法,需使用RPGLE的**函数(Procedure)**而非传统外部程序(EXTPGM)实现。以下是完整示例:

1. 调用程序(PGM_CALLER)

// 调用程序: PGM_CALLER
dcl-pr GetReturnValue char(5);  // 声明函数原型,指定返回值类型为char(5)
  Option char(1) const;         // 输入参数,const标记为只读
end-pr;

dcl-s Result char(5);           // 存储返回值的变量

// 像C语言一样直接调用函数并接收返回值
Result = GetReturnValue('1');  

*INLR = *ON;
return;

2. 返回值函数程序(PGM_FUNCTION)

// 函数程序: PGM_FUNCTION
dcl-pr GetReturnValue char(5) EXPORT;  // 声明导出的函数原型,指定返回值类型
  Option char(1);                       // 输入参数
end-pr;

dcl-pi GetReturnValue char(5);          // 函数定义,与原型返回值类型一致
  Option char(1);
end-pi;

// 业务逻辑处理示例
dcl-s RetVal char(5);
RetVal = 'SUCCESS';  // 生成返回值

return RetVal;       // 直接返回结果,C风格语法
*INLR = *ON;         // 标记程序结束

关键说明

  • 必须使用EXPORT关键字定义可被外部调用的函数,替代传统EXTPGM调用方式
  • 函数原型(dcl-pr)和函数定义(dcl-pi)必须明确指定返回值类型,确保类型一致
  • 调用时直接通过变量 = 函数名(参数)的形式接收返回值,无需额外传入用于返回的参数
  • 函数内部使用return 返回值;语法直接返回结果,无需依赖参数传递

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 10:03:10