C++ 的 assert
函數是預定義的,用于在運行時檢查條件是否為真。如果條件為假,程序會終止并顯示錯誤消息。然而,你可以通過定義自己的宏或函數來實現類似的功能。
以下是一個自定義 assert
的示例:
#include <iostream>
#include <cassert>
// 自定義 assert 宏
#define MY_ASSERT(condition) do { \
if (!(condition)) { \
std::cerr << "Assertion failed: " << #condition << std::endl; \
std::abort(); \
} \
} while (0)
int main() {
int a = 5;
int b = 0;
MY_ASSERT(b != 0); // 如果 b 為 0,程序將顯示錯誤消息并終止
std::cout << "Program continues..." << std::endl;
return 0;
}
在這個示例中,我們定義了一個名為 MY_ASSERT
的宏,它接受一個條件參數。如果條件為假,程序將顯示錯誤消息并終止。否則,程序將繼續執行。請注意,這個自定義 assert
不會在發布版本中啟用,因為它使用了 std::abort()
函數。在發布版本中,你可能希望使用更友好的錯誤處理方式。