assert即断言。它是宏,而非函数。assert一般用于:
- 单元测试。
- 程序初始化过程中,状态判断。
- 程序逻辑上不可能发生的事情,”以防万一“的检查。
断言失败的默认后果是关闭程序,所以注意断言错误处理不要和普通错误处理混淆。断言的使用场景很有限,良好的错误处理才能使程序健壮运行。下面看一个例子:
#define NDEBUG
#include <cassert>
int main(void) {
assert(1 != 1);
}
上面使用#define NDEBUG宏关闭断言,程序编译运行都正常。