我可以根据我的程序中是否定义了变量来包含一段代码,还是预处理器完全无法访问此信息,只能编译条件?即我追求的是:
/IF DEFINED(myVariable)
D myOtherVariable S like(myVariable)
/ELSE
D myOtherVariable S 20A
/ENDIF
这link似乎表明这是不可能的。如果有的话,是否有人知道另一种方法来实现这一目标?
答案 0 :(得分:3)
这将是一个很好的功能,但不幸的是,它今天不会这样。 DEFINED后括号中的值必须是已定义的条件名称,而不是变量名称。使其工作的方法是在任何程序或副本中定义该特定变量时都有一个/ DEFINE指令。这一切都取决于这些情况的使用情况,无论这是否是推荐的做法。
您问题中提供的链接是即时的,我同意结论。
答案 1 :(得分:0)
作为附加提示,请使用C编程书籍来讨论此主题,而不是IBM RPGLE书籍。 IBM书籍描述了可以使用指令执行的操作。 C书描述了它如何在现实世界的程序中使用(例如Linux开源程序)。遵循这种风格使得您的RPG源对其他程序员来说更具可读性。