CV_Assert()作用:CV_Assert()若括号中的表达式值为false,则返回一个错误信息。
ssert 宏的原型定义在中, 其作用是如果它的条件返回错误, 则终止程序 执行,原型定义:
#include void assert( int expression );
assert 的作用是现计算表达式 expression ,如果其值为假(即为 0),那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单:
- #include
- #include
- #include
- int main( void ) {
- FILE *fp;
- fp = fopen( "test.txt", "w" );
- assert( fp );
- fclose( fp );
-
- fp = fopen( "noexitfile.txt", "r" );
- assert( fp );
- fclose( fp );
- return 0; }
使用 assert()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开 销。在调试结束后,可以通过在包含#include 的语句之前插入 #define NDEBUG 来禁用 assert 调用,示例代码如下:
#include #define NDEBUG #include