<分区>
我想找到一个 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代码之前运行预处理器。
这些代码随着我迷失的范围而增长:太多的类、成员、函数名称,而没有代码完成。
这看起来像是那种“当时看来是个好主意”的事情......
如果所有宏的使用都和你复制的一样,也许你可以这样做:
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 自动完成功能。
如果宏还有其他更有创意的用途……好吧,那可能行不通。