代码之家  ›  专栏  ›  技术社区  ›  polemon

通用预处理器:如何用于任何类型的文件?

  •  1
  • polemon  · 技术社区  · 14 年前

    我想知道是否有人使用一个通用的预处理器来处理文本文件。

    这个想法出现了,因为Java没有预处理器,但是我希望有条件代码编译,等等。

    现在,进一步考虑这个想法,我还可以对需要频繁编辑的任何类型的文件使用通用预处理器,但所有编辑都是以类似的方式进行的。

    现在,有好的ol' 我想在使用C预处理器时使用它 GPP

    #define SOMETHING .

    由于m4不使用sigil之类的东西,它可能会与其他代码发生冲突,当m4是一种方式时,我需要关于如何使用sigil或不同前缀之类的东西为每个指令添加前缀的建议。

    2 回复  |  直到 14 年前
        1
  •  2
  •   dplante Tschallacka    12 年前

    大多数C/C++编译器允许您只运行预处理器并保存输出,并且可以用于通用输入。(对于Visual C++,我选择选项为/p)

    但是请记住,预处理器会导致和它们解决的问题一样多的问题。C++和java的设计者都在努力消除使用预处理器的需要。例如,在Java中,代码如下:

    if (true)
         CallThis();
    else
         DoNotCallThis();
    

    CallThis() 调用而不是为条件或else分支生成代码。(这不是实现的质量问题——而是Java语言定义的要求)。

        2
  •  0
  •   lemzwerg    9 年前

    对于“sigil”,使用m4的命令行选项 -P 添加前缀 m4_ 所有内置m4宏。那你就有了 m4_define , m4_divert