首页 > 解决方案 > 向 RPGLE 程序传递更多参数

问题描述

我有一个 RPGLE 程序,旨在接受 2 个参数。虽然这没有任何意义,但我遇到了调用这个程序(通过 callp)传递 3 个参数的代码。

调用程序也定义了一个带有三个参数的原型(同样,这是错误的)。

所以我的问题是,如果将更多参数传递给 RPG 程序会发生什么?令我惊讶的是,我测试时没有错误。但这是侥幸吗?这是等待发生的潜在错误吗?

标签: ibm-midrangerpgle

解决方案


RPG 程序不检查实际传递的参数数量。如果缺少一个并且程序使用它,则会发生异常,您可以使用%parmsand来阻止这种情况%parmnum

当超过预期时,它会被忽略。所以在这里不要出现错误......直到您向被调用者添加第三个参数,该参数不是调用者定义的类型或长度。

为了防止这种情况,在调用者和被调用者之间通过/COPY/INCLUDE源共享原型是很常见的事情


推荐阅读