0

谁能告诉我 gcc 源代码中的哪个函数负责在 C 文件中查找宏并将其替换为实际值?

我想知道该功能,因为我必须通过对其进行更改来获取日志,以便最后我的日志文件将包含所有宏的使用位置及其行号。

4

2 回答 2

0

它由预处理器在生成输出文件之前完成。如果你想看看它在做什么,试试 gcc -E

来自 man gcc:

-E  Stop after the preprocessing stage; do not run the compiler proper.
    The output is in the form of preprocessed source code, which is sent to
    the standard output.
于 2013-04-01T11:30:19.530 回答
0

我建议使用clang这种类型的任务。它有很好的文档记录,您无需更改其源代码,因为它可以通过插件系统进行扩展。

在您的情况下,您基于PPCallbacks该类创建一个插件并覆盖其MacroExpanded方法以及您认为有用的任何其他方法。是一个简单的起点。

于 2013-04-01T11:58:26.070 回答