以前当我还是比较菜的时候(虽然现在也是),那时我看到assert()函数,就在网上查,结果全是些极其详尽而又复杂的用法。

为了避免有人遇到跟我一样的感受,下面我的描述将会非常简单,明了。

assert() 称为断言表达式

意思是:保证assert()中的内容一定是对的。
这是一个宏,所以在预编译的时候就会出现。

assert() 怎么用?

举个非常简单的例子。
我们想要做一个数组类。就比如我们自己先封装一个链表,或者线性表。然后,我们一般都会使用到index的用法。

List l;
l[1] = 2;

像上面这样的用法。
由于是自定义的。那么我们是不是就需要判断下传进来的index是不是正整数?
像下面这样的用法肯定是不可行的

l[0.1] = 2;
l[-1] = 2;
  • 那我们应该怎么改呢?

其实如果不会assert之前。大家的用法一般是:

这样来处理负数的情况。

if (index < 0) {break;
}

要处理浮点数,就可以通过强制类型转换来实现。

但是这样的设计显得过于冗长。

对于使用assert() 来说,只需要一句话。

assert(index >= 0);

如果出现问题了,index < 0 就会报错。
反之,这样如果正常就直接运行下去了。这样的设计会特别简单。也减少调试的麻烦。因为确定某些事情一定会发生了。这样就找bug所需要找的情况就变的少了很多。

至于aasert()还有什么其他复杂的用法,可以在后续慢慢摸索。
或者去网上找他人的复杂教程~ 本篇只是简明教程!

assert() (C++) 非常简单!相关推荐

  1. Java 中的 断言 (assert)—— 初识 简单的使用和理解~只要这一篇就够了

    首先老样子,三个方面来理解 断言是个啥(尝试初步<理解>) 如何使用(到底咋子个用,啥时候用) 个人的思考理解和总结(说话不负责时间) 断言与if的区别 断言和异常的区别 总结 新年快乐! ...

  2. Java assert关键字

    一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,assert关键字是从JAVA SE 1 ...

  3. java中的assert

    Java陷阱之assert关键字 一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,ass ...

  4. Java断言(assert)

    一.概述 在C和C++语言中都有assert关键,表示断言.  在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,assert关键字是从JAVA SE ...

  5. vc中ASSERT()和VERIFY()区别

    vc中ASSERT()和VERIFY()区别 (2010-03-27 22:24:53) 转载▼ 标签: 杂谈   1  ASSERT与VERIFY宏在Debug模式下作用基本一致,二者都对表达式的值 ...

  6. java assert语句未执行_Java陷阱之assert关键字

    转自:http://lavasoft.blog.51cto.com/62575/43735/ Java陷阱之assert关键字 一.概述 在C和C++语言中都有assert关键,表示断言. 在Java ...

  7. java 断言 assert 初步使用:断言开启、断言使用

    主要总结一下在eclipse中如何使用断言. (一)首先明确: java断言Assert是jdk1.4引入的. jvm 断言默认是关闭的. 断言只适用于复杂的调试过程. 断言一般用于程序执行结果的判断 ...

  8. java assert函数_assert函数-论java中assert函数和Python、PHP、C语言assert函数

    assert函数广泛在java.Python.PHP.C语言中存在,都有统一的意义,用业界语言称之为"断言".最初的出发点都是为了方便调试而设计的,但是最近越来越多的开发者不分测试 ...

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

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

最新文章

  1. JAVA就业指导(转)
  2. 如何让 Mybatis 自动生成代码
  3. Python3序列解包
  4. mysql1231错误_Mysql学习---Python操作Mysql 1231
  5. inside uboot (二) 启动流程
  6. java中抽象类,abstract关键字
  7. 全局loading如何控制
  8. SQL SERVER中隐式转换的一些细节浅析
  9. 项目ITP(一) 二维码
  10. ubuntu好用的截图软件flameshot和设置快捷方式截图
  11. 如何让必应bing收录我的网站
  12. 2017阿里巴巴校招在线笔试——货架格子编号
  13. “L2TP 链接尝试失败,因为安全层不能与远程计算机协商兼容的参数”解决方案
  14. RPC通信框架——RCF介绍
  15. 最有范儿的H5制作工具—应用之星之表单控件详解
  16. 微博做内容和收入来源
  17. 真核生物 18S rRNA
  18. Ethereum开发
  19. 谢康 | 同程旅游微服务最佳实践
  20. 爬取历史天气数据并绘制成折线图

热门文章

  1. WINCE下实现USB转RS232
  2. 怎么查计算机网络硬件配置,如何查看电脑本机的硬件配置?
  3. excel最常用的八个函数_Excel最常用的几个函数,我都帮你整理好了!
  4. ConVirt 2.0.1中文汉化版
  5. PHP导出MySQL数据字典
  6. Tools - 一些代码阅读的方法
  7. C# 生成随机字符串
  8. Bzoj3261 最大异或和
  9. centos ruby通过rvm更新版本
  10. Webx示例-PetStore分析1