Chinaunix首页 | 论坛 | 博客
  • 博客访问: 880677
  • 博文数量: 254
  • 博客积分: 5350
  • 博客等级: 大校
  • 技术积分: 2045
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 13:27
文章分类

全部博文(254)

文章存档

2015年(1)

2014年(9)

2013年(17)

2012年(30)

2011年(150)

2010年(17)

2009年(28)

2008年(2)

分类: C/C++

2012-02-15 10:57:52

1、调试标记

适用预处理#define定义一个或多个调试标记,在代码中把调试部分使用#ifdef和#endif进行管理。当程序最终调试完成后,只需要使用#undef标记,调试代码就会消失。常用的调试标记为DEBUG,语句序列

#define DEBUG
.....
#ifdef DEBUG
调试代码
#endif

注:c语言中用if DEBUG

2、运行期间调试标记

在程序运行期间打开和关闭调试标记。通过设置一个调试bool标记可以实现。这对命令行运行的程序更为方便。
例如下面代码
  1. #include<iostream>
  2. #include <string>
  3. using namespace std;
  4. bool debug =false;
  5. int main(int argc,char*argv[])
  6. { for(int i=0;i<argc;i++)  
  7.      if(string(argv[i])==--debug=on“) { 
  8.           debug = true;  
  9.           bool go=true; 
  10.       }

  11.   while(go)  
  12.        {   if(debug)   
  13.                {    调试代码   }
  14.              else {}  
  15.                 }
  16.        }


3、把变量和表达式转换成字符串
可是使用字符串运算符来实现转换输出定义
#define PR(x) cout<<#x”=”<
4、c语言的assert()
该宏在中,,当使用assert时候,给他个参数,即一个判读为真的表达式。预处理器产生测试该断言的代码,
如果断言不为真,则发出一个错误信息告诉断言是什么以及它失败一会,程序会终止。
#include< assert>
using namsapce std;
int main(){ int i=100; assert(i!=100);//Fails}

当调试完毕后在#include前加入#define NDEBUG

阅读(3756) | 评论(1) | 转发(5) |
给主人留下些什么吧!~~

十七岁的回忆2012-02-16 23:23:19

恩,调试的标记和变相标记都很有用!
assert()还木有用过……