我最近以固定格式的rpg iv及其定义在d-specs和p-specs部分的实现中学习了有关loacal程序的信息,或者省略了d-specs定义。
p>根据IBM文档,如果我省略了D中的定义,则编译器将自动从过程接口中生成必要的定义,然后在P-Spec下进行我实施过程的P-Spec。现在我想知道两次定义过程接口的优势是什么?是否有两次写作(几乎)相同的代码(在p-spec的d-pecs中),还是这只是程序员具有一个有意义的位置来定义输入/OUTPU参数的选项为程序?
预先感谢
从IBM I v7.1开始,对于内部过程,创建原型没有优势,实际上,您会出现错误的风险(尽管该问题很容易检测并纠正)。在此之前,所有过程都需要一个原型。对于从服务程序或模块导出的过程,原型至关重要。我将它们保存在单独的抄本中,以便可以在模块源中以及使用模块的程序来源中包含相同的原型。这样,您只需要有一个浮动的原型的单个副本,并且在需要的任何地方都可以很容易地包含。
在中,大多数案例不需要D-Spec原型。但是,如果子过程返回值和,则需要原型您使用&quot'like&quot(subpropedure-name);要声明变量,例如返回值。
d doStuff pr 10a
d input like(doStuff)
d const
在上面的示例中,参数"输入"被定义为子流程的返回值" dostuff"。如果您不包含D-Spec原型,则该程序将不会编译。