是的,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,程序将输出错误信息并终止,否则程序将继续执行。