assert
是 C++ 標準庫中的一個宏,用于在程序運行時檢查某個條件是否為真。如果條件為假,程序會終止并顯示一條錯誤消息。assert
的實現依賴于編譯器和平臺,但它的基本用法在所有平臺上都是相同的。
以下是一個簡單的 assert
示例:
#include <iostream>
#include <cassert>
int main() {
int x = 5;
int y = 0;
// 檢查 x 除以 y 是否為真
assert(y != 0 && "Division by zero!");
int z = x / y;
std::cout << "z: "<< z << std::endl;
return 0;
}
在這個例子中,我們使用 assert
檢查除數 y
是否為零。如果 y
為零,程序將終止并顯示錯誤消息 “Division by zero!”。
需要注意的是,assert
僅在調試模式下有效。當你編譯程序時,需要使用 -DNDEBUG
標志來禁用斷言。例如,使用 g++ 編譯器時,可以這樣做:
g++ -DNDEBUG -o my_program my_program.cpp
這將禁用斷言,即使條件為假,程序也不會終止。這在生產環境中很有用,因為你可以確保程序在遇到錯誤時能夠繼續運行或優雅地處理錯誤。