使用预处理器进行调试
2015-12-19 22:34
162 查看
#include "iostream" using namespace std; void getMoney(int count) { if (count>0) { cout << "取钱成功" << endl; } } int main() { #ifndef NDEBUG cerr<<"start debug"<<endl; #endif return 0; }
通常在开发过程中执行的代码,在程序完成之后,可以将调试的代码关闭,这里就可以进行有条件的调试。
在属性的C++命令行里加入 /NDEBUG后,原来在#ifndef #endid 里面的代码将不会运行,这就是发布的程序。
预处理器还定义了其余四种在调试时非常有用的常量:
#include "iostream" using namespace std; void getMoney(int count) { if (count>=0) { cout << "取钱成功" << endl; } else{ cout << "文件" << __FILE__ << "行数" << __LINE__ << "日期" << __DATE__ << "时间" << __TIME__ << endl; } } int main() { getMoney(-10); return 0; }
另一个常见的调试技术是使用NDEBUG预处理变量以及assert(断言)预处理宏。
必须要加上头文件#include<cassert>
这里遇见不对劲的会产生这种效果!
相关文章推荐
- 使用CocoaPods过程中的几个问题
- Leetcode Reverse Integer
- 《实时控制软件设计》之单元测试
- Request和Response详解
- JS加载js文件或css文件和判断是否加载该js或css
- Windows下JDK安装环境变量配置
- ListView
- LoadRunner 11安装及测试环境搭建
- C# 生成文字图片二维码
- XML解析代码
- 安装交叉编译环境,minicom,tftp,nfs,partitionmanager
- mysql触发器不能进行修改操作的总结
- 设计模式(六):组合模式(Composite)
- keil MDK之RTX事件标志组的API函数
- 网络之Http字段介绍
- 数据库SQL优化大总结之百万级数据库优化方案
- LR11录制回放出现中文乱码以及录制时一直跳到360浏览器的解决方法
- 摄影软件“留拍”开发现状与过程遇到的困难
- 常用oracle函数备份
- jquery返回顶部,支持手机