zoukankan      html  css  js  c++  java
  • #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的表结构。

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

  • 相关阅读:
    【转载】利用一个堆溢出漏洞实现 VMware 虚拟机逃逸
    metasploit(MSF)终端命令大全
    Linux怎么开启ssh
    Day5_模块与包(import)(form......import....)
    Day5_递归_二分法
    Day5_协程函数_面向过程
    Day4_生成器_三元表达式_列表解析_生成器表达式
    Day4_迭代器
    openssh升级的坑爹之路
    Day4_装饰器
  • 原文地址:https://www.cnblogs.com/iois/p/5000684.html
Copyright © 2011-2022 走看看