0

谁能向我解释为什么 DEBUG MACROs 比 WRITE 选项更受欢迎???您能否还向 mw 展示有关调试编译的完整示例。(调试宏)?DEBUG MACROS 如何调试我们的程序?

4

2 回答 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 回答