首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试vs _DEBUG

问调试vs _DEBUG
EN

Stack Overflow用户
提问于 2011-10-10 14:56:15
回答 3查看 3.3K关注 0票数 9

在visual studio 2008中,vc++中的DEBUG和_DEBUG有什么区别?有什么区别吗?因为在我的项目中,有些模块的预处理器是DEBUG,有些模块的预处理器是_DEBUG。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-10 15:03:12

在您自己的代码中,您可以检查任何您想要的宏,因此使用哪个宏并不重要。

但是您使用的库可能会有不同的行为。例如,关于assert状态的MSDN文档:

只有在定义了_DEBUG时,

断言语句才会编译。如果未定义_DEBUG,编译器会将断言视为null语句。

因此,我建议始终使用_DEBUG。

编辑:根据MSDN,你甚至不必定义任何特殊的调试宏,因为只要你指定了一个调试运行时库,编译器就会为你做这件事。

票数 5
EN

Stack Overflow用户

发布于 2011-10-10 14:59:57

这实际上取决于所使用的宏的定义。据我所知,默认的VS2008 C++项目包含要为调试配置定义的_DEBUG。在您的项目中可能还定义了自定义的调试宏。尝试搜索调试定义。

默认情况下,您应该始终使用_DEBUG。

票数 2
EN

Stack Overflow用户

发布于 2014-06-17 13:46:17

如果项目的代码生成设置是带有"debug“的任何东西,那么_DEBUG宏是由编译器定义的。相应的编译器选项是/MDd多线程DLL、动态链接到libc、调试/MLd单线程、静态链接到libc、调试(VC6) /MTd多线程、静态链接到libc、调试

编译器选项/LDd也定义了_DEBUG宏。

DEBUG宏通常在Debug-Project-Setting中显式定义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7709406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档