在Visual Studio 2008的vc++中,DEBUG和_DEBUG之间有什么区别?因为在我的项目中,一些模块的预处理器是DEBUG,而另一些模块则是_DEBUG。
在您自己的代码中,您可以检查任何宏,因此使用哪个宏并不重要。
但是您使用的库可能会有所不同。例如,关于assert
的MSDN文档说明:
只有在定义了_DEBUG时,断言语句才会编译。当未定义_DEBUG时,编译器将把断言视为空语句。
因此,我建议始终使用_DEBUG
。
编辑:根据MSDN的说明,您甚至不必定义任何特殊的调试宏,因为一旦指定了调试运行时库,编译器就会为您执行此操作。
实际上这取决于宏定义的使用。据我所知,VS2008 C++默认项目包含_DEBUG用于调试配置。你的项目中可能也定义了自定义DEBUG宏。尝试搜索DEBUG定义。
默认情况下,您应该始终使用_DEBUG。
_DEBUG
和NDEBUG
- Afriza N. Arief