RPG中的条件编译(LE)

时间:2009-08-18 12:43:32

标签: ibm-midrange rpgle rpg

我可以根据我的程序中是否定义了变量来包含一段代码,还是预处理器完全无法访问此信息,只能编译条件?即我追求的是:

/IF DEFINED(myVariable)
D myOtherVariable       S                  like(myVariable)
/ELSE
D myOtherVariable       S             20A
/ENDIF

link似乎表明这是不可能的。如果有的话,是否有人知道另一种方法来实现这一目标?

2 个答案:

答案 0 :(得分:3)

这将是一个很好的功能,但不幸的是,它今天不会这样。 DEFINED后括号中的值必须是已定义的条件名称,而不是变量名称。使其工作的方法是在任何程序或副本中定义该特定变量时都有一个/ DEFINE指令。这一切都取决于这些情况的使用情况,无论这是否是推荐的做法。

您问题中提供的链接是即时的,我同意结论。

答案 1 :(得分:0)

作为附加提示,请使用C编程书籍来讨论此主题,而不是IBM RPGLE书籍。 IBM书籍描述了可以使用指令执行的操作。 C书描述了它如何在现实世界的程序中使用(例如Linux开源程序)。遵循这种风格使得您的RPG源对其他程序员来说更具可读性。