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

转载请注明出处: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类,用于这些中间状态信息的打印。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值