#ifdef DEBUG编程示例(项目开发时对中间状态信息的控制)

来源:互联网 发布:淘宝客服打字话术 编辑:程序博客网 时间:2024/06/14 07:58

转载请注明出处:http://blog.csdn.net/ict2014/article/details/17335559

在开发程序或者大型项目的时候,特别需要打印一些中间的状态信息到日志文件中,方便跟踪程序的执行流程,加速程序开发的进度。

但是在发布程序的时候,我们并不想打印那些对用户是无关紧要的中间过程信息。

那应该怎么办呢?

此时我们可以定义DEBUG宏控制打印的时间。当DEBUG这个宏已经定义的时候,就打印相关的信息,如果没有被定义,就不打印这个信息。

我们通过如下一个简单的累加计数求和的小程序来看看“DEBUG宏”的功能:

/* 此程序用于在debug的时候输出状态信息 * 在release版本的时候不打印这些调试信息 * 方便在开发程序的时候对程序执行流程进行跟踪 * * 作者:张海波 * 时间:2013-12-15 * 联系方式:newchance@126.com */#include <iostream>using namespace std;//定义编译选项的开关//如果不想打印中间信息的时候,就注释掉此行#define DEBUG//debug模式下输出相应中间信息void DebugOutput(const int& add,                  const int& result){#ifdef DEBUG    cout << "i = " << add          << " result = " << result         << endl;#endif}int main(int argc, char** argv){    //一个循环,求1+2+3+...+100 = ?    int i = 0, result = 0;    for(i = 0; i <= 100; ++i)    {        result += i;        DebugOutput(i,result);    }    return 0;}

在Linux命令行下:g++ -o Debug  Debug.cpp生成Debug可执行文件,"./Debug"执行即可。

在Windows下,利用vs直接运行即可。

上述程序的输出结果如下: 

                      


同时,如果不想打印这些状态信息的话,就把程序的第16行注释掉即可。

这样在开发程序的过程中,就可以额外的定义一个debug类,用于这些中间状态信息的打印。

0 0