可以用<cassert>中声明的assert()库函数来检查本地C++程序中始终为true的逻辑条件

实际上assert()只在调试版本程序中才会起作用,发布版本不进行编译的;

头文件中,一般是使用预处理实现这个功能,也可以自定义调试的代码;如下所描述

在本地C++程序的中,
预处理符号NDEBUG是在发布版本中默认自动定义的.调试版本中没定义
预处理符号_DEGUG是在调试版本中默认自动定义的,发布版本中没定义

下面这个输出语句只在调试版本编译,不在
发布版本内编译,利用这个特点,可以自己写便于调试的输出信息

#ifdef DEBUG
cout<<"Marker_1";
#endif

为了可读性,我们可以添加自己的调试表示,方法如下

#ifdef _DEBUG
#define My_defined
#endif

这样,就可用使用My_defined代替_DEBUG使用了,

这是C++中最基础的调试功能,可以基于这个开发比较高级的调试功能,

例如内存泄漏检测,以及防止指针悬挂

功能还不错吧!!!o(∩_∩)o...哈哈

转载于:https://www.cnblogs.com/valuel/archive/2009/11/15/1603362.html

cassert与NDEBUG,_DEGUG相关推荐

  1. Cpp / #error、static_assert、assert 区别

    一.#error 执行期间是预编译阶段,目的是配合 #ifdef / #ifndef 参与预编译的条件检查,显示一段错误信息. 二.static_assert static_assert(bool f ...

  2. c++ primer note

    ---恢复内容开始--- 1.decltype 2.auto 3.cbegin 4.cend 5.constexpr 6.(*Parray)[10]=&arr; //Parray 指向一个含有 ...

  3. c++ 函数 -函数重载 -特殊用途的语言特性(默认实参,内联函数 ,constexpr ,assert,NDEBUG)

    c++ 函数 -函数重载 -特殊用途的语言特性 文章目录 c++ 函数 -函数重载 -特殊用途的语言特性 函数重载 定义: 重载和const形参 const_cast 和重载 const_cast 重 ...

  4. C++之assert、NDEBUG探究

    相关博文:C++之异常处理探究 相关博文:assert.if else.try catch三者的区别 assert   编写代码时,我们总是会做出一些假设,assert就是用于在代码中捕捉这些假设.a ...

  5. C++宏assert()

    断言,是宏,而非函数.assert 宏的原型定义在 <assert.h>(C).<cassert>(C++)中,其作用是如果它的条件返回错误,则终止程序执行.可以通过定义 ND ...

  6. C++面试知识点总结

    一.static关键字的作用 1.修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化 ...

  7. C++Primer学习——函数

    编译器能以任意顺序对形参进行求值 函数的返回类型不能是数组类型和函数类型. 函数开始时为形参分配内存,一旦函数结束,形参也就被销毁了. 如果弄成静态局部变量,那么回到程序终止结束时才被销毁. void ...

  8. C++编程思想重点笔记(下)

    上篇请看:C++编程思想重点笔记(上) 宏的好处与坏处 宏的好处:#与##的使用 三个有用的特征:字符串定义.字符串串联和标志粘贴. 字符串定义的完成是用#指示,它容许设一个标识符并把它转化为字符串, ...

  9. UVALive 4035 - Undetectable Tour(并查集)

    题意:给定一个 N * N(3 <= N <= 10000)的矩形区域,左下角为(0,0),右上角为(N,N),现在要从左下角走到右上角,但是有 k(k <= 100)个监视器,每个 ...

最新文章

  1. [实现] 利用 Seq2Seq 预测句子后续字词 (Pytorch)2
  2. GMM-HMM语音识别算法
  3. Managed Extensibility Framework (MEF)
  4. 数据库学习day_01:SQL的发展和数据库操作相关sql语句
  5. 四大微博OAuth认证
  6. jmeter mysql 连接复用_JMeter 连接MySQL
  7. POJ 2887 Big String
  8. c# 弹性和瞬态故障处理库Polly
  9. 程序开发天团必备单品,稳定输出还加持千元商务礼限时送!
  10. sql重新注册服务器,sql server无法新建注册服务器怎么办?
  11. python爬虫网络出错怎么办_Python爬虫常见问题
  12. python判断能否组成三角形_python三角形判定怎么做
  13. Tensor:归并操作
  14. 如何判断一个大佬值不值得跟随
  15. HDU 2152 Fruit (母函数)
  16. 最近,前端开发把我恶心着了,为了甩锅,我写了个牛逼的日志切面!
  17. 阿里 Lindorm 数据库联手 Hightopo ,开启工业物联超融合存储模式
  18. linux环境下,集群中Hadoop版本更换
  19. 使用 Docker 部署的微服务在 Nacos 里注册成内网地址 导致无法微服务间互相调用的解决方案...
  20. 图片放大后不清楚怎么办?

热门文章

  1. mysql表误删回复_mysql 找回误删表的数据方法(必看)
  2. java oracle 建表语句_在oracle数据库中创建表语句如何写?
  3. php 图片地址用变量,php使用ob_start()实现图片存入变量的方法
  4. matlab的syms无法在函数中使用_EXCEL中查找匹配函数VLOOKUP使用技巧
  5. c 在realse下为什么生成不了exe_exe文件?你也可以编写!
  6. Android React Native 笔记(二):Component生命周期
  7. Android固定宽度文字自适应大小
  8. 开发日记-20190802 关键词 闲聊
  9. ElasticSearch-hadoop saveToEs源码分析
  10. Google Progressive Web App简称PWA