assert用法

来源:百度知道 编辑:UC知道 时间:2024/06/17 20:48:31
我们公司的交换机程序里(C编写)有assert的语句,用来检查值是否为0,师傅说,如果为0,进程会死掉。但该语句出现在命令界面的进程里,死掉必然导致系统没有响应。

虽然说这个值为0一定不可能发生,但是它写这句话用意是什么呢?为什么要让一种可能使系统崩溃的情况存在?

还有就是用assert来检查值和用if来判断并返回错误标记各有什么好处

assert——断言,你确定某个表达式正常情况下应为真。
debug时,出错了则说明你考虑不周,前面有错,主要是用于的排除错误。
release时,assert不起作用。

assert主要用于程序的测试阶段,在发行版程序中,可以通过定义NDEBUG宏的办法关闭assert

当assert测试不满足条件时,程序会中断并退出,同时给出中断提示信息。

当if测试不满足条件时,会继续执行后面的语句,不会中断程序。