gpt4 book ai didi

ibm-midrange - 如何为 RPG 或 CL 程序中的激活组设置编译器选项?

转载 作者:行者123 更新时间:2023-12-02 07:06:19 25 4
gpt4 key购买 nike

有什么方法可以指定程序源,在编译期间应该使用哪些激活组选项?

在 as/400 上的大多数程序中,我们需要更改激活组的处理(因为默认行为根本没有用...)。每次我编译其中一个程序时,我都必须记住设置编译器选项(在 PDM 中:输入 14,点击 F4,更改 DFTACTGRP*YES*NO,点击 enter,将 ACTGRP 更改为 *NEW*CALLER,具体取决于程序)。所以我们有很多程序在开头都有注释,有很多感叹号,提醒程序员这样做。是的,有时您会忘记。

有没有什么技巧,让自己不用记住自己?

最佳答案

您可以在 RPGLE 或 CLLE 程序源中设置这些编译器选项。

RPG 中,您可以在源代码顶部使用 H-Specs 来设置编译器选项。像这样:

HDFTACTGRP(*NO) ACTGRP(*CALLER)

只需将它添加到您那里的任何其他内容,例如:

H DEBUG DATEDIT(*YMD)
H DFTACTGRP(*NO) ACTGRP(*CALLER)
H BNDDIR('SRVBNDDIR')
H MAIN(main)
F OUTPUT O F 3000 DISK USROPN
D ...
* procedures, etc.

CL中,有一个特殊的命令DCLPRCOPT,它实际上不是命令(因为它不在运行时执行),而是一种设置编译器选项的方法。

DCLPRCOPT DFTACTGRP(*NO) ACTGRP(*CALLER)

只需将它放在程序的顶部即可。我通常将它放在变量声明之后和任何实际命令之前。我还添加了一个简短的评论,因为我认为可能正确我的代码的每个人都不会理解那里所做的事情:

PGM        PARM(&SOMEPARM)
DCL VAR(&SOMEPARM) TYPE(*CHAR) LEN(*64)
DCL VAR(&COUNTER) TYPE(*DEC) LEN(5 0)

/* Setting options for compilation of this program */
/* This is a permanent job, so we want a *NEW activation group. */
DCLPRCOPT DFTACTGRP(*NO) ACTGRP(*NEW)

/* do actual work here in a loop */
/* ..... */

ENDPGM

现在,当您编译程序时(只需在 PDM 中输入 14 并按回车键),它会以您在源代码中指定的激活组行为结束。没有任何东西可以让您记住自己。

关于ibm-midrange - 如何为 RPG 或 CL 程序中的激活组设置编译器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11562194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com