assert()判断其参数,如果为假在debug模式下就终止程序,并且显示assert()的位置。在release模式下可以继续运行。
最主要的用处是在debug模式下查错。例如对一个指针进行了很复杂的操作后,不只其是否还有效,你可以写。
char *pchr;
。。。 一堆 pchr 的操作
assert(pchr)
在debug的时候,如果pchr是NULL,那么程序就被终止,并且这行报错。你就可以看为什么这里有问题,是别人传进来的指针pchr有问题,还是操作有问题。把问题在debug模式下修改掉。如果这不是太严重的错误,就可以继续这么凑合着运行,release模式下没事。因为最终卖给客户的软件都是release模式的。