任何人都可以向我解释为什么DEBUG MACROs比WRITE选项更受欢迎? 您是否也可以在编译调试时显示mw的完整示例。 (DEBUG MACROS)? DEBUG MACROS如何调试我们的程序?调试和发布模式的宏
回答
调试宏不会“调试程序”,但它们提供了调试程序的能力。
它可以是额外的检查。
#ifdef DEBUG
#define CHECK_NON_ZERO(x) if (x == 0) cout << "Error, should be zero!\n";
#else
#define CHECK_NON_ZERO(x)
#endif
float func(int x)
{
CHECK_NON_ZERO(x);
return 1.0f/x;
}
显然,一旦你做你的代码的测试,发布版本,你可能不希望有额外的检查是x
不为零,所以你不要有额外的检查。
好的我知道了。但你为什么写#ifdef DEBUG?你的意思是调试模式?或任何单词,而不是DEBUG,你可以使用???? – ProDev7
我的意思是在调试版本 - 但不同的环境有不同的方式来说“调试构建”,你当然可以拥有自己的'#ifdef MY_DEBUG',并且当你想要的时候使用'-DMY_DEBUG'作为编译器的选项启用此功能。这不是我发布后的重点 - 关键是有时候你有代码,只有在开发软件时才有意义。显然,用零调用这个函数会导致一个不好的结果,所以最好检查它。但是,“好代码”不应该首先用零调用这个函数,所以在发布时不需要测试它。 –
我用0调用了这个函数,但没有打印出你写的错误。 – ProDev7
- 1. 用于调试和发布模式的宏
- 2. Eclipse CDT和调试/发布模式
- 3. 调试模式或发布模式
- 4. 在调试模式和发布模式下部署
- 5. 在发布模式下调试符号
- 6. 在发布模式下调试
- 7. 发布模式vs调试=“false”
- 8. 发布调试模式代码
- 9. 以发布模式写入调试
- 10. 发布和调试
- 11. 在发布模式/调试模式下双精度的差异
- 12. UWP应用程序的调试和发布模式
- 13. 调试和发布模式下的AES加密问题
- 14. 调试和发布模式中的序列化有所不同
- 15. 调试和发布模式给出不同的输出
- 16. #如果DEBUG总是正确的调试和发布模式
- 17. 为调试和发布模式指定不同的库
- 18. Android - 调试和发布模式的应用程序图标
- 19. NVIDIA Visual Profiler,Visual Studio 2010中的调试和发布模式
- 20. Asp.net MVC3发布调试与发布模式似乎倒退
- 21. 发布在发布模式下,出版与调试配置
- 22. 以调试或发布模式发布到Windows Azure
- 23. Android:发布和测试模式?
- 24. Authorize.net静默发布和测试模式
- 25. 发布在调试模式,但编译器删除#if调试
- 26. 字VBA宏只能在调试模式
- 27. OpenGL呈现在发布模式,但不是调试模式
- 28. Site.css为调试模式,site-min.css为发布模式
- 29. VS2008 C++发布模式比调试模式慢
- 30. Android - google-services.json用于调试和发布模式
你从哪里看到一个DEBUG宏?你有一个例子吗?另外,什么是WRITE选项? –
我的意思是通过WRITE,我们使用printf或cout来检查变量的值以避免错误。 – ProDev7
我不认为你可以说DEBUG宏比使用'printf()'更可取,因为它们经常一起使用。 –