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()
函数。在发布版本中,你可能希望使用更友好的错误处理方式。