Pergunta

Posso incluir uma seção de código com base em se uma variável é definida no meu programa, ou é o pré-processador completamente incapaz de aceder a esta informação, apenas as condições de compilação? Ou seja, Estou atrás de algo como:

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

Este link parecem sugerir que é não é possivel. Se assim for, alguém sabe de uma outra maneira de conseguir isso?

Foi útil?

Solução

Seria um bom recurso para ter, mas, infelizmente, não é assim que funciona hoje. O valor entre parênteses após DEFINIDO deve ser um nome da condição , não um nome de variável definida. A maneira de fazê-lo funcionar é ter um / DEFINIR directiva sempre que você definir essa variável específica em qualquer um dos programas ou cadernos. Tudo depende do uso para estas situações, tanto quanto se ou não esta é uma prática recomendada.

O link fornecido na sua pergunta é spot-on e concordo com as conclusões.

Outras dicas

Como uma dica adicional, o uso C livros de programação para este assunto, não os livros IBM RPGLE. Os livros IBM descrever o que pode ser feito com as directivas. Os livros C descrever como ele é usado em programas do mundo real (programas de código aberto, por exemplo, Linux). Após esse estilo faz suas fontes de RPG muito mais legível para outros programadores.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top