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项目,在java代码中有C的定义和宏,然后在编译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 回答