谁能向我解释为什么 DEBUG MACROs 比 WRITE 选项更受欢迎???您能否还向 mw 展示有关调试编译的完整示例。(调试宏)?DEBUG MACROS 如何调试我们的程序?
问问题
245 次
2 回答
3
调试宏不是“调试程序”,但它们提供了调试程序的能力。
它可以是额外的检查。
#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
非零的额外检查,因此您没有额外的检查。
于 2013-08-26T23:59:21.793 回答
1
有很好的旧断言(...)。如果定义了 NDEBUG,则为 noop,但如果未定义 NDEBUG,则检查。
顺便说一句:调试宏不调试,只是记录信息。
于 2013-08-27T00:09:52.527 回答