上一篇转载的没看懂,参考别人的代码,自己又琢磨了一个调试技巧,挺好用,姑且就叫调试开关吧,欢迎指正!!!

/*功能:调试开关
 *描述:if条件成立,则打印调试信息,否则不打印()
 *
*/

#include
#if 1           //为0时调试关闭, 为1时调试打开
#define DEBUG_OUT(fmt, args...)\
printf("file:%s func:%s line:%d\n", __FILE__, __func__, __LINE__)

#else
#define DEBUG_OUT(fmt, args...) ((void)0)
#endif
int main(void)
{
    int i;
    for(i = 0; i < 4; i++){
        printf("i = %d\n", i);
    }
    print();
    DEBUG_OUT();
    return 0;
}

int print(void)
{
    printf("hello world\n");
    DEBUG_OUT();
    return 0;
}
-- 插入

 

如上代码:

1__FILE__ 打印出调试信息所在的文件名;

2__func__ 将会打印出调试信息所在的函数名;

3__LINE__ 将会打印出调试信息所在文件的行号;

运行结果:

[root@embedclub test]# gcc -o debug debug.c
[root@embedclub test]# ./debug
i = 0
i = 1
i = 2
i = 3
hello world
file:debug.c func:print line:28
file:debug.c func:main line:21