0

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

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

链接似乎表明这是不可能的。如果是这样,有人知道实现这一目标的另一种方法吗?

4

2 回答 2

3

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

您问题中提供的链接是正确的,我同意这些结论。

于 2009-08-18T15:16:36.830 回答
0

作为附加提示,请使用 C 编程书籍来学习本主题,而不是 IBM RPGLE 书籍。IBM 书籍描述了指令可以做什么。C 书籍描述了如何在现实世界的程序(例如 Linux 开源程序)中使用它。遵循这种风格会使您的 RPG 源代码对其他程序员更具可读性。

于 2009-11-11T16:39:03.450 回答