ibm-midrange - 向 RPGLE 程序传递更多参数
问题描述
我有一个 RPGLE 程序,旨在接受 2 个参数。虽然这没有任何意义,但我遇到了调用这个程序(通过 callp)传递 3 个参数的代码。
调用程序也定义了一个带有三个参数的原型(同样,这是错误的)。
所以我的问题是,如果将更多参数传递给 RPG 程序会发生什么?令我惊讶的是,我测试时没有错误。但这是侥幸吗?这是等待发生的潜在错误吗?
解决方案
RPG 程序不检查实际传递的参数数量。如果缺少一个并且程序使用它,则会发生异常,您可以使用%parms
and来阻止这种情况%parmnum
。
当超过预期时,它会被忽略。所以在这里不要出现错误......直到您向被调用者添加第三个参数,该参数不是调用者定义的类型或长度。
为了防止这种情况,在调用者和被调用者之间通过/COPY
或/INCLUDE
源共享原型是很常见的事情
推荐阅读
- kubernetes - 如何使用 Istio 功能实现基于客户端 IP 的路由?
- c++ - 将使用 /MD 运行时库类型构建的 c++ 静态库与 Windows 上的 /MT 库集成到项目中
- reactjs - 如何使用 Zustand 进行切换
- .htaccess - 删除 URL 重写不起作用的子文件夹
- java - 在远程节点上的计算任务期间无法识别 java 方法
- scala - Spark Scala Job 在最终 Job 中体验长时间运行的任务
- java - 如何在不影响大小写和换行符的情况下获取实际源代码?
- firebase - 显示来自 Firebase 的图像
- android - 代码编译后如何设置状态 Flutter
- javascript - Http 403 - 在反应中使用 RSS 解析器的 CORS 错误