用于调试和释放模式的宏

时间:2013-08-26 23:54:46

标签: c++

任何人都可以向我解释为什么DEBUG MACROs比WRITE选项更受欢迎??? 你能否展示一下关于编制调试的完整例子。 (DEBUG MACROS)? DEBUG MACROS如何调试我们的程序?

2 个答案:

答案 0 :(得分: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非零的额外检查,所以你没有额外的校验。

答案 1 :(得分:1)

有好的断言(...)。如果定义了NDEBUG则为noop,但检查是否未定义NDEBUG。

顺便说一下:调试宏不调试,只记录日志信息。