1

誰かがテキスト ファイルを操作するために一般的なプリプロセッサを使用しているかどうか疑問に思っていました。

Javaにはプリプロセッサがないため、アイデアが思い浮かびましたが、条件付きコードのコンパイルなどが必要です。

ここで、その考えをさらに進めて、頻繁に編集する必要があるあらゆる種類のファイルに汎用プリプロセッサを使用することもできますが、すべての編集は同様の方法で行われます。

さて、私がCプリプロセッサを使用しているので使いたい古き良きm4があり、 GPPがありますが、2007年に開発が中止されました.

可能であれば、C プリプロセッサと同じ方法でディレクティブを使用する必要があります#define SOMETHING

m4 はシジルなどを使用しないため、他のコードと衝突する可能性があります。m4 を使用する場合は、すべてのディレクティブの前にシジルまたは別のプレフィックスなどを付ける方法についてアドバイスが必要です。

4

2 に答える 2

2

ほとんどの C/C++ コンパイラでは、プリプロセッサを実行して出力を保存するだけでよく、汎用入力で使用できます。(Visual C++ の場合、オプションは /P だと思います)

ただし、プリプロセッサは、解決するのと同じくらい多くの問題を引き起こすことを忘れないでください。C++ と Java の両方の設計者は、プリプロセッサを使用する必要性を排除しようと懸命に努力してきました。たとえば、Java では、次のようにコーディングします。

if (true)
     CallThis();
else
     DoNotCallThis();

呼び出しのコードを生成するだけCallThis()で、条件または else 分岐のコードは生成しません。(これは実装の品質の問題ではありません --- Java 言語定義の要件です)。

于 2010-08-16T11:18:59.987 に答える