Assert
標頭
C : assert.h
C++ : cassert
包含的函數
巨集函數:
assert ( EXP )
使用方法:EXP為一個判斷表達式,若EXP成立的話程式會繼續執行,否則程式將會中止並產生錯誤訊息。
範例程式碼
[mw_shl_code=cpp,true]#include<iostream>
#include<cassert>
using namespace std;
int main()
{
int a = 18;
int b = 18;
assert( a!= b );
cout<< "通過 assert 的檢查" <<endl;
cout<< a / (a-b) <<endl;
}[/mw_shl_code]
執行結果
可以發現,因為a!=b這個敘述是錯誤的,於是程式就被終止,避免繼續執行下面的除法運算。通常assert會用在函數套件或是Debug時使用,用來確保通過assert時,變數有達到指定的要求。
如果要取消assert的功能,可以定義
NDEBUG來關閉功能,參考如下:
[mw_shl_code=cpp,true]#include<iostream>
//關閉Assert 要在 include 前加才有用
#define NDEBUG
#include<cassert>
using namespace std;
int main()
{
int a = 18;
int b = 18;
assert( a!= b );
cout<< "通過 assert 的檢查" <<endl;
cout<< a / (a-b) <<endl;
}[/mw_shl_code]
執行結果