DEBUG vs _DEBUG

vik*_*kky 8 visual-studio-2008 visual-c++

在visual studio 2008中,vc ++中的DEBUG和_DEBUG之间有什么区别.这有什么不同,因为在我的项目中,在某些模块中,预处理器是DEBUG,在某些模块中它是_DEBUG.

Ste*_*han 5

在您自己的代码中,您可以检查所需的任何宏,因此使用哪个宏无关紧要.

但是您使用的库可能表现不同.例如关于assert状态的MSDN文档:

断言语句仅在定义_DEBUG时编译.如果未定义_DEBUG,编译器会将断言视为空语句.

所以我建议永远使用_DEBUG.

编辑:根据MSDN,您甚至不必定义任何特殊的调试宏,因为只要您指定调试运行时库,编译器就会为您执行此操作.