预处理前的C/C++文件

owa*_*agh 1 c-preprocessor preprocessor-directive

是否可以在预处理之前查看ac/c ++文件?或者更确切地说,只是半心半意的预处理?基本上有一个

#define <commonly_used_word> 0
Run Code Online (Sandbox Code Playgroud)

在第三方库标题中,我想弄清楚它在哪里.所以基本上,我只是希望编译器包含所有头文件而不是预处理器.

AnT*_*AnT 5

您的原始源文件预处理之前的文件.

听起来你想要#include处理你的指令,但你想保持宏不被替换.这两个动作都由预处理器执行.

在一般情况下,这是不可能的,因为在C和C++中使用宏作为包含文件名是合法的,如

#define INCLUDE_FILE "stdio.h"
#include INCLUDE_FILE 
Run Code Online (Sandbox Code Playgroud)

实现您想要的功能需要专门设计的预处理器来满足您的要求.举个例子,我不知道任何这样的预处理器实现.

如果要查找定义特定宏的位置,可以尝试以下技巧:包含任何标头之前,使用相同的名称定义自己的宏,然后开始编译.当编译器(预处理器)遇到同一个宏的库定义并指出它的位置时,它应该抱怨宏重定义.