Joh*_*ker 1 c debugging assertions
根据我的理解断言是C中的一个宏,并且如果你在编译时使用它但是禁用它,那么就不会有开销(这可能不正确我不知道).对我来说问题是,我想要做的是将所有变量传递给我的函数并打印输出,但仅限于我想要启用调试.这是我到目前为止:
int exampleFunction (int a, int b)
{
#ifdef debugmode
printf("a = %i, b = %i", a, b);
#endif
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更容易(并且不那么难看)的方法来做这样的事情.xdebug for php有这个功能,我发现在调试时节省了大量的时间,所以我想为每个功能做这件事.
谢谢
edu*_*ffy 11
试试这个:
#ifdef debugmode
#define DEBUG(cmd) cmd
#else
#define DEBUG(cmd)
#endif
DEBUG(printf("a = %i, b = %i", a, b));
Run Code Online (Sandbox Code Playgroud)
现在,如果您已debugmode定义,则会获得print语句.否则,它永远不会出现在二进制文件中.