3

Java IDE、またはJavaコードで純粋なCプリプロセッサ(「#if」と言うが、「//#if」のようなアテナコメントプリプロセッサではない)を理解できる一般的なコードエディターを構成する方法を見つけたい、このようなもの:

class Person
{
#if USE_SHORT_ID
  short m_Id;
#elif
  int m_Id;
#endif
#define DEFAULT_ID 0
#include "some_functions.h"

}

理由: Java コードにCの定義とマクロを含む Java プロジェクトに関与し、Java コードをコンパイルする前にプリプロセッサを実行しました。これらのコードは、私が迷子になる範囲として成長しています。コード補完がないのに、クラス、メンバー、関数名が多すぎます。

4

1 に答える 1

1

それは「当時はすごいアイデアだった」みたいな感じですが…。

すべてのマクロの使用がコピーしたものと同じである場合は、おそらく次のことができます。

types.hj : (Java ヘッダー ファイルの通常の拡張子は?!)

#if USE_SHORT_ID
    #define short id_t
#elif
    #define int id_t
#endif

そして、*.javaファイル内で次のことを行うだけです。

class Person
{
    id_t m_Id;
}

次に、プリプロセッサを呼び出すと、types.hjファイルのインクルードが強制されます。たとえば、GNU cpp では次のようにします。

$ cpp -include types.hj PersonP.java -o Person.java

IDE オートコンプリートを無効にしないためには、これで十分です。

他の、より創造的なマクロの使用法がある場合...まあ、それはうまくいかないかもしれません。

于 2012-09-23T08:52:37.887 に答える