java - 是否有任何支持 C 预处理器的 Java IDE?

标签 java macros editor c-preprocessor

<分区>

我想找到一个 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 自动完成功能。

如果宏还有其他更有创意的用途……好吧,那可能行不通。

关于java - 是否有任何支持 C 预处理器的 Java IDE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550860/

相关文章:

java - 如何制作pick 3彩票程序? (java)

C++ 类工厂宏

editor - 如何在不打开 Notepad++ 的情况下禁用 Notepad++ 自动打开以前的文件?

java - Java 堆栈上的 Cassandra 与 JavaScript 堆栈上的 Mongodb

java - Android 与 Eclipse 不兼容?

visual-studio-code - 我可以使用 VS Code 批量编辑多个文件吗?

c - 可变参数在 CC 编译器上的 AIX 5.3 中不起作用

ruby-on-rails - 如何将 RedCloth.to_html 转换回可编辑的普通文本?

editor - 如何在 Notepad++ 中使用项目符号和编号?

java - Android:传递允许 recyclerview 由特定字符串填充的变量