我想找一个java IDE,或者任何方式来配置一个流行的代码编辑器,它可以理解纯 C 预处理器(比如'#if'但不是athenna注释预处理器就像'//# if')在java代码中,如下所示:
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代码之前运行预处理器。 这些代码正在成长为一个我迷失的范围:没有代码完成时类,成员,函数名称太多。
答案 0 :(得分: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自动完成功能。
如果还有其他更有创意的宏用途......那么,这可能无效。