assert()
是 C++ 中的一個調試斷言宏,它在運行時檢查給定的條件是否為真。如果條件為假(0),程序將終止并顯示一條錯誤消息。這對于捕獲潛在的錯誤和確保程序的正確執行非常有用。
assert()
函數的參數是一個布爾表達式。如果該表達式的結果為 true
,則程序將繼續正常執行。如果結果為 false
,則程序將終止并顯示一條錯誤消息,通常包含表達式的參數和文件名以及行號。
下面是一個簡單的示例:
#include <iostream>
#include <cassert>
int main() {
int x = 5;
int y = 0;
// 斷言 x + y 不等于 0
assert(x + y != 0);
std::cout << "This line will not be executed if the assertion fails." << std::endl;
return 0;
}
在這個例子中,assert(x + y != 0)
將檢查 x + y
的結果是否不等于 0。由于 y
的值為 0,所以 x + y
的結果為 5,不等于 0。因此,斷言為真,程序將繼續執行。
但是,如果我們更改 y
的值為 -5,那么 x + y
的結果將為 0,等于 0。這將導致斷言失敗,程序將終止并顯示以下錯誤消息:
Assertion failed: x + y != 0, file main.cpp, line 6