assert()是什么?

assert的头文件是assert.h
使用方式:assert( expression );
当expression为FALSE时,程序将会终止,并且会弹出expression的信息。光这样说可能不太清楚。
for example
assert(length >= 0);//当length小于0时,程序将会终止,并弹出Assersion failed: lenght >= 0的信息提示这边出了错误。也即告诉程序员length不是非负数。
当然你也可以添加更多的出错显示信息,如
assert(length >= 0 && "length can't possibly be negative");
或者
assert(("length can't possible be negative", length >= 0));

assert()有什么用?

assert可以这样通俗的理解:我要确保expression正确,但如果不正确程序你就停止运行吧,然后告诉我。
1. assert 可以在函数开始时检验参数的合法性
int resetBufferSize(int nNewSize)
{//功能:改变缓冲区大小,//参数:nNewSize 缓冲区新长度//返回值:缓冲区当前长度 //说明:保持原信息内容不变     nNewSize<=0表示清除缓冲区assert(nNewSize >= 0);assert(nNewSize <= MAX_BUFFER_SIZE);...
}

assert()有什么注意点

由于assert()是在调试状态下运行的,其开销还是蛮大的,因此待调试完程序后可以选择关闭assert,这个可以这样做
#define NDEBUG
#include <assert.h>

即在assert.h前添加NDEBUG。

基于你的程序最终是在assert关闭状态下运行的,你的程序设计将不能依赖于assert()函数,不然将会出现与你所想的截然不同的程序运行结果。
例如
length = 100;
assert(length++);

这时候在assert()打开和assert()被关闭两种状态下,程序的执行结果将有可能完全不同,因此这是一个bad的设计。

又如
assert(foo());

此处程序运行依赖于foo();

可以改成
int ret = foo();
assert(ret);

assert()详解相关推荐

  1. C++ assert() 详解

    C++ assert 宏的应用方式将会在这篇文章中进行详解 相信对此有兴趣的朋友们应该可以根据我们介绍的内容充分掌握这方面的应用技巧.  作为一个经验丰富的编程人员来说,对于C++编程语言应该不会陌生 ...

  2. 断言(assert)详解

    目录 一.assert定义 二.用法总结与注意事项 四.以下是使用断言的几个原则: 一.assert定义 我一直以为 assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错 ...

  3. 单元测试中Assert详解-xUnit

    前一篇:详谈单元测试-xUnit 简介 Assert 是基于代码的返回值.对象的最终状态.事件是否发生等情况来评估测试的结果.Assert 的结果可能是 Pass 或者 Fail.如果所有的 Asse ...

  4. php7 断言,PHP 断言(assert) 详解

    PHP 中的断言常用于调试,检查一个表达式或语句是否为 FALSE.本文带你重新认识 PHP assert() 函数的神(Qi)通(Yin)广(Ji)大(Qiao). 本文基于 PHP Version ...

  5. java 断言 assert 详解:断言开启、断言使用

    java中的断言Assert的使用 一.背景 二.如何判断是否开启了断言 三.开启断言 四.断言的使用 方法一.assert <boolean表达式> 方法二.assert <boo ...

  6. php 断言,PHP 断言(assert) 详解

    PHP 中的断言常用于调试,检查一个表达式或语句是否为 FALSE.本文带你重新认识 PHP assert() 函数的神(Qi)通(Yin)广(Ji)大(Qiao). 本文基于 PHP Version ...

  7. 函数assert()详解

    函数assert()详解: 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式.预处理器产生测试该断言的代码,如果断言不为真, ...

  8. python的用途实例-python assert的用处示例详解

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件 ...

  9. python3 isinstance用法_对python中assert、isinstance的用法详解

    1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...

最新文章

  1. GAN的基本原理、应用和走向
  2. WinDbg用法详解
  3. hadoop配置文件说明
  4. 一个简单的Ajax开发框架
  5. jquery实现停留半秒后再选择
  6. 【基础】利用thrift实现一个非阻塞带有回调机制的客户端
  7. 解决Windows环境下Git Bash 不能输入中文的问题
  8. c语言管理系统的数据存放,编的学生成绩管理系统 从文件中读取保存数据总会多读入一组乱码数据...
  9. python不同数据的读入_python读写不同编码txt文件_python读写txt文件
  10. 视频监控、直播——基于opencv,libx264,live555的RTSP流媒体服务器 (zc301P摄像头)By Chain_Gank...
  11. 17.合并两个排序的链表
  12. APP被苹果App Store拒绝的原因
  13. [WP8.1UI控件编程]Windows Phone动画方案的选择
  14. c语言食堂饭卡管理课程设计,第十一章 C语言课程设计—饭卡管理程序.docx
  15. C#批量发送短信操作
  16. CSS 实现圆角梯形
  17. Python脚本批量转换图片格式至ico
  18. 自制一个交叉适配器来检修网络设备(转)
  19. 转:探寻问题背后的问题——提问的4个正确姿势
  20. 破解DELL BIOS开机密码,拔电池放电不好使

热门文章

  1. 用idea打包项目成war最简单的方法
  2. 图像数据标准化与归一化
  3. spacedesk安装失败2503/2502错误
  4. 《星际争霸》怀念星际历史上最强的队伍系列三
  5. mapStateToProps mapDispatchToProps 的使用
  6. window系统 node.js安装 (node-v14安装配置、node-v16及其他版本安装配置)
  7. PanoSim仿真模型--传感器模型之单目相机
  8. 软考高项 - 计算公式汇总整理
  9. 设计需求分析方法与过程
  10. CODE CHINA