栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++基础复习提升-assert那些事

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++基础复习提升-assert那些事

C++基础复习提升-assert那些事
  • 断言是宏而非函数
  • 断言与正常错误处理

参考C++那些事-光城大佬的网站
上一篇-C++基础复习提升-常用写法类初始化列表

断言是宏而非函数

断言作用是如果它的条件返回错误,则终止程序执行,也就是不必等到程序生命周期结束时才会报bug。可以定义NDEBUG来关闭assert,但是需要在源代码的开头#include之前定义。

#include 
#include "assert.h"

using namespace std;

int main()
{
    int i = 100;
    // expression: i < 100
    assert(i < 100);
    // 程序到上面的assert就终止了,不会运行下面的i++;
    i++;
    return 0;
}
断言与正常错误处理

断言主要用于检查逻辑上不可能的情况。例如,它们可用于检查代码在开始运行之前所期望的状态,或者在运行完成后检查状态。与正常的错误处理不同,断言通常在运行时被禁用。
忽略断言

#define NDEBUG //在#include前加上这行才能生效,通知编译器assert不可用,在#include后面加则无效
// 断言不可用
#define NDEBUG
#include 
#include "assert.h"

using namespace std;

int main()
{
    int i = 100;
    // 因添加了#define NDEBUG 则忽略断言
    assert(i < 100);
    i++;
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号