欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

c语言中assert的用法

终极管理员 知识笔记 99阅读

assert()这个函数在 c++ 中用吗?

答:assert ()这个函数在 C++ 中用的比较少,但是有以次面试被问及到了,我就说了个中断,然后面试官让我过了,所以记录一下,查了下资料,原来如此! assert 宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include void assert ( int expression ); assert 的作用是现计算表达式 expression ,如果其值为假(即为

assert(i++)在什么情况下使用断言?

答:根据提示我们很快就能定位到错误点,就在assert (i++)处;既然assert这么便于定位出错点,在工程中使用它就显得很有必要;但其也有一定的使用规则; 断言语句不会永远被执行,可以屏蔽也可以启用,这就要求assert不管是在屏蔽还是启用状态下都不能对我们本身代码有所影响,这样刚才我们在代码中使用的 assert (i++) 就不行,因为如果禁用了 assert ,那i++就不能执行;正确的做法应该是: assert (i);i++; 那么我们一般在什么情况下使用断言呢? 可以在预计正常情况下程序不会到达的地方放置断言。 (如assert (0);) 使用断言检测类的不变状态,确保任何情况下,某个变量的状态或范围必须满足。

assert () 宏的用法是什么?

答:如果 expression 为 FALSE,assert () 会在标准错误 stderr 上显示错误消息,并中止程序执行。 这个宏不返回任何值。 下面的实例演示了 assert () 宏的用法。

已放弃使用assert()的缺点是什么?

答:已放弃使用assert ()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。 在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:

声明:无特别说明,转载请标明本文来源!