【发布时间】:2020-04-07 04:45:50
【问题描述】:
我目前正在阅读: enter link description here -gcc 是 C 预处理器文档。
但是即使我寻找其他文档,我仍然无法找到真正的宏实现。 A在/usr/lib/gcc/x86_64-linux-gnu/8/cc1中找到了一个exe:cc1文件,应该在编译的一个阶段(不知道是哪一个)使用这个:enter link description here
但是 language 实际上是预处理器实现的,我的意思是 - 它在历史上比 c 更老,所以我想是汇编程序或类似的。主要原因是,我如何通过自己的指令来实现或扩展它。有人建议在gcc 编译之前使用快速perl 程序为我执行此操作,但我仍然想知道在哪里可以找到在linux 中用c 实现的预处理器文件(如果存在于c source file 而不是elf file 或已经作为目标文件 - 正如cc1 所做的那样 - 那么我当然无法阅读实现。如果有人能提到宏预处理的那个阶段,我也会很高兴(不询问单独指令的解释,而是询问它的内部它的工作)。
我只是想看看它的肠子。
【问题讨论】:
-
预处理器不是一个可以修改或扩展的独立应用程序。这将打破应用程序应在不同编译器中构建的原则。您可以按照建议自己做,但这样做有风险。
-
@john - 可以,但是如果需要扩展当前的 cpp,那为什么不呢?无论如何,这并不能回答如何实际修改 cpp。
标签: c macros c-preprocessor