难以理解断言宏



我最近发现了这段代码,我有点困惑。

#ifdef LOCAL //  chk -> fake assert
#define dbg(...) cerr << "Line(" << __LINE__ << ") -> [" << #__VA_ARGS__ << "]: [", DBG(__VA_ARGS__)
#define chk(...) if (!(__VA_ARGS__)) cerr << "Line(" << __LINE__ << ") -> function(" 
<< __FUNCTION__  << ") -> CHK FAILED: (" << #__VA_ARGS__ << ")" << "n", exit(0);
#else
#define dbg(...) 0
#define chk(...) 0
#endif

我清楚地理解调试的作用,但我不知道什么是"调试";chk";以及我应该如何在代码中使用它。谢谢

dbg在任何情况下都会将消息与宏参数一起打印到cerr,无论参数的值是true还是false

另一方面,chk宏仅在宏参数求值为false然后调用exit的情况下打印消息

相关内容

  • 没有找到相关文章

最新更新