天天看点

【c库】01-cassert使用断言

距离上次更新不知不觉,又是半个月过去了。总是如此拖更,我的内心也感觉到了非常愧疚。不过cpp基础实在是没什么思路了,不知道应该写点什么(其实是知道的,按照进度,应该要更新有指针无继承的类了),但总之,最近没有继续更新它的想法。

不过好在,我们现在有了全新的篇章了,也就是c++的标准库。有一句话怎么说的来着,不会标准库的程序员不是一个好设计师,那么,我们就从c标准库开始努力学起吧!

cassert,也就是断言,其中有一个函数assert(),无返回值,参数写表达式,如果表达式的值为False,那么就会导致断言失败,程序终止。

也就是说,断言相当于一个预期的结果,我希望是怎么样的,我可以先提出来,如果程序发现和我预期的不一样,那么就终止。

#include <iostream>
#include <cassert>

using std::cout;
using std::endl;

int main()
{
    int a = 0;

    // 断言成功,什么都不做,继续运行
    assert(a == 0);
    cout << "a == 0" << endl;

    // 断言失败,程序在这里报错,并终止
    assert(a != 0);
    cout << "a != 0" << endl;
}
           

这有什么用呢?按照我的理解,应该就是用于程序调试的。在调试的时候,可以在一些地方设置断言,来测试程序的运行结果是否符合预期。正式使用的时候,应当不使用断言。否则,程序出了点问题,咔,停止运行了,这个似乎不是很合适。

总之,今天的cassert看起来就是一个比较简单的部分。也没什么特别值得说的了。