assert()函数用法

assert是定义在头文件cassert中的宏

其作用是如果他的返回值不为真则终止程序。

assert(expression);

if 为假,先向stderr打印一条错误信息,再用abort终止程序

缺点:频繁调用影响程序性能,增加程序开销。

可在调用cassert后,用#define NDEBUG来禁用assert

每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败

不能使用改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使用程序在真正运行时遇到问题

有的地方,assert不能代替条件过滤

posted @ 2016-09-21 07:45  KennyRom  阅读(632)  评论(0编辑  收藏  举报