assert
是 C++ 标准库中的一个宏,用于在程序运行时检查某个条件是否为真。如果条件为假,程序会终止并显示一条错误消息。assert
的实现依赖于编译器和平台,但它的基本用法在所有平台上都是相同的。
以下是一个简单的 assert
示例:
#include <iostream>
#include <cassert>
int main() {
int x = 5;
int y = 0;
// 检查 x 除以 y 是否为真
assert(y != 0 && "Division by zero!");
int z = x / y;
std::cout << "z: "<< z << std::endl;
return 0;
}
在这个例子中,我们使用 assert
检查除数 y
是否为零。如果 y
为零,程序将终止并显示错误消息 “Division by zero!”。
需要注意的是,assert
仅在调试模式下有效。当你编译程序时,需要使用 -DNDEBUG
标志来禁用断言。例如,使用 g++ 编译器时,可以这样做:
g++ -DNDEBUG -o my_program my_program.cpp
这将禁用断言,即使条件为假,程序也不会终止。这在生产环境中很有用,因为你可以确保程序在遇到错误时能够继续运行或优雅地处理错误。