C++笔记 - assert

284 阅读1分钟

assert即断言。它是,而非函数。assert一般用于:

  • 单元测试。
  • 程序初始化过程中,状态判断。
  • 程序逻辑上不可能发生的事情,”以防万一“的检查。

断言失败的默认后果是关闭程序,所以注意断言错误处理不要和普通错误处理混淆。断言的使用场景很有限,良好的错误处理才能使程序健壮运行。下面看一个例子:

#define NDEBUG
#include <cassert>

int main(void) {
    assert(1 != 1);
}

上面使用#define NDEBUG宏关闭断言,程序编译运行都正常。