当前位置:网站首页 > 技术博客 > 正文

assert语句



目录

一、前言

二、什么是 assert ? 

 三、assert 的用法

 四、assert 案例解析

 五、assert 断言的使用原则

六、共勉 


      在编写程序过程中,尤其是调试代码时,往往需要一个提醒代码漏洞/Bug的小助手,以便于程序员及时修改和完善代码。那么assert关键字就可以成为这个小助手。

 概念:C/C++ 中的  是一个,用于在运行时检查一个条件是否为真,如果条件不满足,则运行时将终止程序的执行并输出一条错误信息。

  • assert 宏定义在 <assert.h> 或 <cassert> 头文件中,并接受一个参数,通常为一个语句。
  • 如果这个语句的结果为 falseassert 宏就会以"Assertion failed: , file , line "的形式显示出错信息,然后使程序崩溃并终止运行。如果该语句的结果为 true,则 assert 宏不做任何操作。

作用:  宏的使用可以帮助程序员检查程序的正确性,并提供帮助定位错误的一种手段。通常在程序编写的测试与调试阶段使用  来追踪程序执行中的错误,并在最终发布程序时关闭  检查,以提升程序的运行效率。

 语法:

  • assert(condition);
  • condition:要判断的条件

 说明:
 

  • a、如果condition判断结果为false,则程序就会停止执行。
  • b、当程序停止执行时,assert就会断言失败,并输出一条程序的错误信息到控制台或日志文件中。
  • c、assert关键字常常用于调试程序阶段,可以用来帮助程序员在程序出现异常或错误时,快速定位问题所在,以便于检查和就修改完善。
  • d、而在程序正常部署后,assert一般就会被自动关闭。

案例1 : 比大小

 
   
  •  在这个例子中,条件  不成立,程序就会在  这个语句处崩溃,输出一条相应的错误信息。

案例2 : 模拟 strlen() 函数 

 
   

 小结

  • a、断言需要引用头文件,<assert.h>
  • b、断言,作用是指出代码报错的位置/方便查找原因

        assert() 是一个调试程序时经常使用的,在程序运行时它计算括号内的表达式,如果表达式为 false (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。

  • (1)使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。
  • (2)使用断言对函数的参数进行确认。
  • (3)在编写函数时,要进行反复的考查,并且自问:"我打算做哪些假定?"一旦确定了的假定,就要使用断言对假定进行检查。
  • (4)一般教科书都鼓励程序员们进行防错性的程序设计,但要记住这种编程风格会隐瞒错误。当进行防错性编程时,如果"不可能发生"的事情的确发生了,则要使用断言进行报警。

注意:assert 只有在 Debug 版本中才有效,如果编译为 Release 版本则被忽略。 

 以下就是我对 assert 断言 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++  vector 类的理解,请持续关注我哦!!!  

版权声明


相关文章:

  • 梅尔倒谱系数matlab2025-07-30 15:30:00
  • 公共dns是什么2025-07-30 15:30:00
  • 基于java的网络爬虫2025-07-30 15:30:00
  • c语言数据类型用法2025-07-30 15:30:00
  • 迭代器实现原理2025-07-30 15:30:00
  • 卖淫女子为躲检查意外坠亡2025-07-30 15:30:00
  • ftok函数作用2025-07-30 15:30:00
  • java设置请求头2025-07-30 15:30:00
  • 归并排序算法步骤2025-07-30 15:30:00
  • 班智达藏文怎么打2025-07-30 15:30:00