Вопрос

Могу ли я включить участок кода в зависимости от того, определена ли переменная в моей программе, или препроцессор совершенно не может получить доступ к этой информации, только условия компиляции?Т.е.Мне нужно что-то вроде:

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

Этот связь кажется, что это невозможно.Если да, то знает ли кто-нибудь другой способ добиться этого?

Это было полезно?

Решение

Было бы неплохо иметь эту функцию, но, к сожалению, сегодня она так не работает.Значение в скобках после DEFINED должно быть определенным. название условия, а не имя переменной.Чтобы это работало, нужно использовать директиву /DEFINE всякий раз, когда вы определяете эту конкретную переменную в любой программе или тетради.Все зависит от использования в этих ситуациях, насколько это рекомендуемая практика.

Ссылка, представленная в вашем вопросе, точна, и я согласен с выводами.

Другие советы

В качестве дополнительной подсказки используйте для этого предмета книги по программированию на языке C, а не книги IBM RPGLE.В книгах IBM описывается, что можно сделать с помощью директив.Книги C описывают, как он используется в реальных программах (например.Linux-программы с открытым исходным кодом).Следование этому стилю сделает ваши исходные коды RPG более читабельными для других программистов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top