如何在if和assert中做选择?
在撸代码的时候,经常需要对代码的安全性进行检查,例如: 1. 指针是否为空? 2. 被除数是否为 0? 3. 函数调用的返回结果是否有效? 4. 打开一个文件是否成功? 对这一类的边界条件进行检查的手段,一般都是使用 if 或者 assert 断言,无论使用哪一个,都可以达到检查的目的。那么是否就意味着:这两者可以随便使用,想起来哪个就用哪个? 这篇小短文我们就来掰扯掰扯:在不同的场景下,到底是应该用 if,还是应该使用 assert 断言? 写这篇文章的时候,我想起了孔乙己老先生的那个问题:茴香豆的“茴”字有几种写法? 似乎我们没有必要来纠结应该怎么选择,因为都能够实现想要的功能。以前我也是这么想的,但是,现在我不这么认为。 成为技术大牛、拿到更好的offer,也许就在这些细微之间就分出了胜负。 二、assert 断言 刚才,我问了下旁边的一位工作 5 年多的嵌入式开发者:if 和 assert 如何选择?他说:assert 是干什么的?! 看来,有必要先简单说一下 assert 断言。 assert() 的原型是:然是宏定义,说明是在预处理的时候进行宏替换。 从上面的定义中可以看到:
三、if VS assert
还是以一个代码片段来描述问题,以场景化来讨论比较容易理解。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |