assert()
是 C++ 中的一个调试断言宏,它在运行时检查给定的条件是否为真。如果条件为假(0),程序将终止并显示一条错误消息。这对于捕获潜在的错误和确保程序的正确执行非常有用。
assert()
函数的参数是一个布尔表达式。如果该表达式的结果为 true
,则程序将继续正常执行。如果结果为 false
,则程序将终止并显示一条错误消息,通常包含表达式的参数和文件名以及行号。
下面是一个简单的示例:
#include <iostream>
#include <cassert>
int main() {
int x = 5;
int y = 0;
// 断言 x + y 不等于 0
assert(x + y != 0);
std::cout << "This line will not be executed if the assertion fails." << std::endl;
return 0;
}
在这个例子中,assert(x + y != 0)
将检查 x + y
的结果是否不等于 0。由于 y
的值为 0,所以 x + y
的结果为 5,不等于 0。因此,断言为真,程序将继续执行。
但是,如果我们更改 y
的值为 -5,那么 x + y
的结果将为 0,等于 0。这将导致断言失败,程序将终止并显示以下错误消息:
Assertion failed: x + y != 0, file main.cpp, line 6