【发布时间】:2010-11-03 18:42:17
【问题描述】:
据我了解,assert 是 C 语言中的一个宏,据说如果您在编译时使用它但将其禁用,则不会有开销(我不知道这可能不正确)。 对我来说,问题是我想做的是将所有变量传递给我的函数并打印出该输出,但前提是我希望启用调试。这是我目前所拥有的:
int exampleFunction (int a, int b)
{
#ifdef debugmode
printf("a = %i, b = %i", a, b);
#endif
}
我想知道是否有更简单(且不那么丑陋)的方法来做这样的事情。 xdebug for php 有这个功能,我发现它在调试时为我节省了大量时间,所以我想为每个函数都这样做。
谢谢
【问题讨论】:
-
如果定义了 NDEBUG,assert() 宏将完全禁用,因此如果在发布模式下定义,则不会产生任何开销。
标签: c debugging assertions