我有一个 RPGLE 程序,它旨在接受 2 个参数。虽然没有意义,但我遇到了调用这个程序的代码(通过 callp)传递 3 个参数。
调用程序也定义了一个带有三个参数的原型(同样,这是错误的)。
所以我的问题是,如果向 RPG 程序传递更多参数会发生什么?令我惊讶的是,我测试时没有错误。但这是侥幸吗?这是等待发生的潜在错误吗?
RPG 程序不检查实际传递的参数数量。如果缺少一个并且程序使用它,则会发生异常,您可以使用%parmsand防止这种情况%parmnum。
当比预期多一个时,它被忽略。所以这里没有错误......直到你向被调用者添加第三个参数,该参数不是调用者定义的类型或长度。
为了防止这种情况,通过/COPY或/INCLUDE源在调用者和被调用者之间共享原型是很常见的事情
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |