今天在写代码时看到idea有个assert的提示,好奇心驱使之下对它一探究竟,跟着一条一块看看吧

 

断言(assert)的含义

assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作。

其实就相当于一个 if 语句: 
if(假设成立) { 程序正常运行; } else { 报错&&终止程序!(避免由程序运行引起更大的错误) }
但是这样写的话,就会有无数个 if 语句,甚至会出现,一个 if
语句的括号从文件头到文件尾。并且大多数情况下,我们要进行验证的假设,只是属于偶然性事件,又或者我们仅仅想测试一下,一些最坏情况是否发生,所以这里有了
assert()。

好处

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

坏处

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

用法总结

基本应用

在函数开始处检验传入参数的合法性
int resetBufferSize(int nNewSize) { //功能:改变缓冲区大小, //参数:nNewSi

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信