OpencvのCV_Assert()関数

1750 ワード

現在opencvを学習してソースコードを見るとCV_が見つかりましたAssert(src.rows++3&&src.cols==3)、実はCV_Assert()関数はC++標準ライブラリのassert()関数とほぼ同じです.
CV_Assert()の役割:CV_Assert()カッコ内の式の値がfalseの場合、エラーメッセージが返されます.
ssertマクロのプロトタイプ定義はassert.hでは、その条件がエラーを返すとプログラム実行を終了する役割を果たし、プロトタイプ定義:#include assert.h 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 assert.を含めることができます.h前の文の前に#define NDEBUGを挿入してassert呼び出しを無効にします.サンプルコードは以下の通りです.
#include  #define NDEBUG #include