c++ - 如何找出 MSVC 为预处理器宏使用的值

标签 c++ macros c-preprocessor visual-c++-6

我试图在 MSVC6 上使用/D 编译器选项来定义一个字符串,但是在它周围使用双引号有些奇怪。要调试此问题,如果能够查看预处理器实际将什么值替换到我的扩展宏的代码中,这将对我非常有帮助。有什么办法可以做到这一点?我尝试使用“assembly and source”创建一个列表文件,但源包含原始宏名称,ASM 在该行是一些难以理解的乱码。有没有办法在编译时获取宏值?

如果做不到(或者可能更有用),我如何使用/D 选项指定一个字符串?它需要在我的源代码中加上双引号,因为我将它用作字符串文字。

最佳答案

对 CL.exe 尝试以下选项之一:

/E preprocess to stdout
/P preprocess to file

如果您在 Visual Studio 中构建,您可以在其中一个项目属性对话框中指定自定义命令行选项。

关于c++ - 如何找出 MSVC 为预处理器宏使用的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342158/

相关文章:

c++ - "In file included from error"带 vector

c++ - 如何从 std::list 中删除一个项目

c++ - C语言中宏的使用

c - 函数和函数指针声明的宏?

c++ - C/C++ 需要一种巧妙的方法来跟踪函数调用

c++ - 在 linux 上加载多个相似的共享库

c++ - 带模板的 C++ 策略模式

c - 如何仅包含 header 中的定义

c++ - #define 和 const 的分配

c++ - 使用 C 宏将字符串转换为非字符串