assert()
是C++中用于調(diào)試的宏,它在運(yùn)行時(shí)檢查給定的條件是否為真
<cassert>
。#include <cassert>
assert()
宏來檢查條件。assert()
接受一個(gè)布爾表達(dá)式作為參數(shù)。如果表達(dá)式的結(jié)果為false
,程序?qū)⒔K止并顯示一條錯(cuò)誤消息。通常,錯(cuò)誤消息會(huì)包含文件名和行號(hào),以幫助你定位問題。例如,檢查一個(gè)變量是否為正數(shù):
#include <iostream>
#include <cassert>
int main() {
int number = -5;
assert(number > 0 && "Number must be positive");
std::cout << "Number is positive." << std::endl;
return 0;
}
在這個(gè)例子中,assert()
將檢查number
是否大于0。如果不是,程序?qū)⒔K止并顯示錯(cuò)誤消息:Number must be positive
。
注意:assert()
僅在調(diào)試模式下有效。當(dāng)你編譯并運(yùn)行程序時(shí),可以通過添加-DNDEBUG
標(biāo)志來禁用斷言:
g++ -o my_program my_program.cpp -DNDEBUG
這將關(guān)閉斷言,即使條件為false
,程序也不會(huì)終止。這在生產(chǎn)環(huán)境中很有用,因?yàn)槟憧梢源_保程序不會(huì)因?yàn)閿嘌远馔饨K止。