是的,C++的assert()
函数可以自定义
#include#include // 自定义断言宏 #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,程序将输出错误信息并终止,否则程序将继续执行。