• #define DEBUG用法


    背景:

    很多时候我们写代码,想要看看函数或者算法执行的对不对、是否达到了我们想要的效果,
    那么,最直接的办法是把函数或者算法所操作数据显示出来看看,这样就需要写一些cout<<直接输出的代码;

    但是一旦代码达到了所要的效果,要发布了,或者给使用者使用了,这样就无需cout<<
    这样我们又要手工去删除或者注释很多cout<<,对于小程序来说工作量不是很大,但是对于一个大系统来说,工作量就相当大了。

    有没有办法使得在debug的时候输出,release的时候不输出呢?
    有的,可以用到debug宏。

    ifdef _DEBUG

    #ifdef _DEBUG
    
    
    #endif
    

    这是条件编译,即如果有#define _DEBUG时语句中间的内容会被编译编译,否则忽略不编译
    当你用debug生成时,VS的开发环境则自动的加上这个宏定义;
    release时,没有这个宏。

    所以debug时,可以使用这个特性,用输出来测试我们的代码是否正确。


    1. VS环境下,debug时编译器自动#define _DEBUG。这样可以直接用#ifdef _DEBUG .... #endif
    2. 也可以自己手动 #define DEBUG
      release时 注释//#define DEBUG,就可以使程序不编译 之间的代码。

    编译器在内存中会维护一张关于 #define的表结构。

    总之,这是一种测试代码方法,还是第一种做法简便。

  • 相关阅读:
    I Hate It
    hdu 2112 HDU Today ( Dijkstra )
    hdu 1280 前m大的数
    hdu 4252 A Famous City
    hdu 2647 Reward
    hdu 2845 Beans
    hdu 3548 Enumerate the Triangles ( 优 化 )
    hdu 3552 I can do it! (贪心)
    HDU 3033 I love sneakers!(分组背包变形)
    hdu 1712 ACboy needs your help 分组背包
  • 原文地址:https://www.cnblogs.com/iois/p/5000684.html
Copyright © 2020-2023  润新知