首页 文章

获取编译器理解的宏扩展值

提问于
浏览
0

我正在使用一个代码库,它有很多宏已定义和未定义,并在所有地方重新定义 . 令人惊讶的是编译器仍然能够通过它们进行咀嚼,所以无论如何都要提取这种宏扩展结果,即

MY_MACRO -> myFolder/myFile.cpp #266 float myFunc()

有没有办法为MSVC和GCC获得这个?

3 回答

  • 1

    您可以将 gcc -E 用于GNU C / C.

    对于Visual Studio,您可以从命令提示符处使用 CL /EP /C myfile.cpp .

  • 0

    对于MSVC,使用/ P开关进行编译(项目>属性> C / C>预处理器>生成预处理文件) . 在解析完所有预处理指令后,这将生成包含编译器本身实际看到的文本的文件(扩展名为.i) .

    我认为在Unix-y平台上你可以用 cpp 工具实现相同的功能 .

  • 2

    GDB允许您查看宏的结果(请参阅http://sourceware.org/gdb/onlinedocs/gdb/Macros.html) . 但我不想寻找 . 希望这可以帮助

相关问题