c++中assert

Posted bitcarmanlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中assert相关的知识,希望对你有一定的参考价值。

1.什么是assert

assert,中文翻译为断言,注意是一个宏定义,不是函数。
c++中,要使用assert,可以将cassert头文件include进来,而cassert最终是引用的assert.h。

assert的作用跟其他语言中是一样的,如果它里面的条件返回错误,代码会终止运行,并且会把源文件,错误的代码,以及行号,都输出来。

#include <cstdio>
#include<cassert>

void func1() 
    int n = 2;
    assert(n==1);


int main(int argc, char const *argv[])

    func1();
    return 0;

运行以上代码,会得到如下输出:

Assertion failed: (n==1), function func1, file tempCodeRunnerFile.cc, line 6.

2.停用assert

停用assert功能也很简单,只需要在源文件起始位置加上如下一行代码:

#define NDEBUG

以上即可。

以上是关于c++中assert的主要内容,如果未能解决你的问题,请参考以下文章

c++中assert

C语言C++中assert的用法

在C ++中使用assert()是不好的做法?

您可以使用 assert 来测试 C++ 中的类型定义吗?

C++ assert(0); 语句直接忽略了,没有执行,可能是啥原因啊?各位大虾,帮帮忙

c++中断言函数指啥