断言指令(assert)的用法

什么是断言指令?

断言指令的语义就是判断某个条件,如果结果不为真,就执行一段非常规的动作,一般为程序立马结束运行。

几种常见的断言指令

1.assert
条件判断失败就终止运行。
2.verify
条件判断失败继续执行,并输出错误。
3.waitfor
等条件加载成功后才向下继续执行,否则一直等待。

C/C++中断言指令的具体使用以及注意事项

assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行。

#include "assert.h" 
void assert( int expression );

assert的作用是判断 expression 的返回值,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。

使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

**注意:**程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。以下是一个内存复制程序,在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。

总结

断言是一种调试方式,断言失败会抛出错误警告并终止程序,只能在开发和测试阶段启用断言;

对可恢复的错误不能使用断言,而应该抛出异常;

断言很少被使用,更好的方法是编写单元测试。

猜你喜欢

转载自blog.csdn.net/daijingxin/article/details/114273498