DEBUG_PRINT
来源:互联网 发布:c语言创建一张表的语句 编辑:程序博客网 时间:2024/05/19 00:41
在程序里为了调试的便利,我们经常要打印一些信息,如函数的返回值什么的,同时我们又不想在公布的法度中显示这些信息,于是我们如许实现:
#ifdef _DEBUG
printf("This is a debug information.\n");
#endif
然则,
在法度里为了调试的便利,我们经常要打印一些信息,如函数的返回值什么的,同时我们又不想在公布的法度中显示这些信息,于是我们如许实现:
#ifdef _DEBUG
printf("This is a debug information.\n");
#endif
然则,法度中须要打印的调试信息的处所可能很多,每次都如许写也挺麻烦,所以我们定义宏
#ifdef _DEBUG
#define debug_print(s) printf(s)
#else
#define debug_print(s)
#endif
如许,若是编译的时辰定义了_DEBUG选项(DEBUG版),则将debug_print(s)调换成printf(s),法度在履行的时辰打印调试信息;不然就将debug_print(s)用空行调换掉,法度在履行的时辰也就没有什么显示了。
如今题目又来了,如许的情势只能打印简单的信息,不克不及进行格局转换的,想下面的句子就不克不及正确履行了:
debug_print("ret code = %d\n", ret);
我们对本来的宏定义作简单的批改:
#ifdef _DEBUG
#define debug_print(s) printf s
#else
#define debug_print(s)
#endif
而程序中我们如许应用:
debug_print(("ret code = %d\n", ret)); // 重视,是两个括号!
如许,在预编译的时辰,s被("ret code = %d\n", ret)调换
我在自己的一生里也曾经历过被遗弃和背叛的痛苦。可是有一种东西却救了我:我的生活永远是有目的、有意义的,这就是为社会主义而奋斗。——奥斯特洛夫斯基
中须要打印的调试信息的处所可能很多,每次都如许写也挺麻烦,所以我们定义宏
#ifdef _DEBUG
#define debug_print(s) printf(s)
#else
#define debug_print(s)
#endif
如许,若是编译的时辰定义了_DEBUG选项(DEBUG版),则将debug_print(s)调换成printf(s),法度在履行的时辰打印调试信息;不然就将debug_print(s)用空行调换掉,法度在履行的时辰也就没有什么显示了。
如今题目又来了,如许的情势只能打印简单的信息,不克不及进行格局转换的,想下面的句子就不克不及正确履行了:
debug_print("ret code = %d\n", ret);
我们对本来的宏定义作简单的批改:
#ifdef _DEBUG
#define debug_print(s) printf s
#else
#define debug_print(s)
#endif
而在法度中我们如许应用:
debug_print(("ret code = %d\n", ret)); // 重视,是两个括号!
如许,在预编译的时辰,s被("ret code = %d\n", ret)调换
- DEBUG_PRINT
- DEBUG_PRINT
- lua-redis
- C#中partial关键字
- hdu 1166 敌兵布阵 线段树&树状数组
- CInternetSession.OpenUrl连接限制(转)
- xml 和 Java Annotation 的优缺点对比
- DEBUG_PRINT
- 模板类静态变量
- 有关于在myeclipse中java向服务器发送请求返回数据有中文乱码的一种情况及解决
- 在Outlook2007中设置签名(有图有真相)
- Qt实现全局热键
- I2C总线协议学习笔记http://hi.baidu.com/312860519/item/a72f9eeb644404275a2d6492
- nokia c503
- 友善之臂Micro2440下的Embedded Linux的硬件时间设置
- FastDFS的配置、部署与API使用解读——设置FastDFS配置参数的两种方式