是的,C++的assert()
函數可以自定義
#include <iostream>
#include <cassert>
// 自定義斷言宏
#define MY_ASSERT(condition) do { \
if (!(condition)) { \
std::cerr << "Assertion failed: " << #condition << std::endl; \
std::abort(); \
} \
} while (0)
int main() {
int x = 5;
int y = 0;
MY_ASSERT(y != 0); // 如果y為0,程序將輸出錯誤信息并終止
std::cout << "All tests passed!" << std::endl;
return 0;
}
在這個例子中,我們定義了一個名為MY_ASSERT
的自定義斷言宏。當條件為假時,它會輸出錯誤信息并調用std::abort()
來終止程序。在main()
函數中,我們使用MY_ASSERT
來檢查y
是否為0。如果y
為0,程序將輸出錯誤信息并終止,否則程序將繼續執行。