assert详解 C++[转]
#include <iostream>
#include <cassert>
int main()
{
int a=5;
assert(1);
std::cout<<a<<std::endl;
}
assert(0)时:assert: assert.cpp:6: int main(): Assertion `0' failed.
assert(1) 时:5
C++ assert()函数的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
使用C++ assert()函数的缺点:频繁的调用会极大的影响程序的性能,增加额外的开销。
在调试结束后,可以通过在包含#include < assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:
#include < stdio.h> #define NDEBUG #include < assert.h>
转自:http://blog.itpub.net/post/17630/281831