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

追加のヒントとして、この主題については、IBM RPGLE の本ではなく、C プログラミングの本を使用してください。IBM の本には、ディレクティブで何ができるかが説明されています。C の書籍では、実際のプログラム (Linux オープン ソース プログラムなど) での使用方法について説明しています。そのスタイルに従うことで、RPG ソースは他のプログラマーにとってはるかに読みやすくなります。

于 2009-11-11T16:39:03.450 に答える