首页 > 编程语言 >【C/C++】assert实现

【C/C++】assert实现

时间:2023-04-14 15:22:53浏览次数:37  
标签:__ ASSERT MLA 实现 expr C++ assert printf

 

#define MLA_ASSERT(expr)    (void)((!!(expr)) || (printf("mla assert fail: \"%s\" @ %s, %u", #expr, __FILENAME__, __LINE__), printf("\r\n"), abort()
// usage:
MLA_ASSERT(pointer != NULL)

#define MLA_ASSERT(expr)    (void)((!!(expr)) && (printf("mla assert fail: \"%s\" @ %s, %u", #expr, __FILENAME__, __LINE__), printf("\r\n"), abort()
// usage:
MLA_ASSERT(pointer == NULL)

// 返回值是最后一个参数,只会是0或1
#define MLA_ASSERT(expr)    (int)((!!(expr)) || (printf("mla assert fail: \"%s\" @ %s, %u", #expr, __FILENAME__, __LINE__), printf("\r\n"), 0))
// usage:
if (!MLA_ASSERT(pointer != NULL)) {
    return;
}

#define MLA_ASSERT(expr)    (int)((!!(expr)) && (printf("mla assert fail: \"%s\" @ %s, %u", #expr, __FILENAME__, __LINE__), printf("\r\n"), 0))
// usage:
if (!MLA_ASSERT(pointer == NULL)) {
    return;
}

 

标签:__,ASSERT,MLA,实现,expr,C++,assert,printf
From: https://www.cnblogs.com/skullboyer/p/17318411.html

相关文章

  • ncurses 库使用介绍: 实现终端 GUI
    这次ENGG1340课程的groupproject是设计并实现一个text-basegame,作为终端上运行的text-basegame,有一个出彩的GUI肯定是一个加分项!在未老师的介绍下,我知道了有<ncurses.h>库这么一个神奇的东西;最重要的是,虽然它不属于C++标准库,但是在学校server里居然默认下载好了......
  • Python实现简易勒索病毒
    一、勒索病毒简单来说,勒索病毒就是通过加密受害者电脑的本地数据,向受害者勒索赎金的恶意软件。加密勒索软件的核心是加密算法,我自己实现的勒索病毒使用的就是安全度高破解难度大的RSA加密算法。RSA是一种非对称公钥加密算法,依赖于大质数分解难题,通过公钥无法轻易破解私钥。此......
  • Huffman实现
    Huffman编码树秒懂:【算法】Huffman编码_哔哩哔哩_bilibili约定:字符x的编码长度就是其对应叶节点的深度;在一个字符集中,每个字符出现的次数有多有少,那么若都采用固定长度编码的话,那么编码长度会非常大,并且搜索时间复杂度都非常高;若采用非固定编码,出现次数多的字符编码长度小一......
  • 【MySQL】主从复制实现原理详解
      目录一、概要1.1mysql复制的优点1.2Mysql复制解决的问题二、MySQL主从复制的概念三、MySQL主从复制的主要用途3.1读写分离3.2数据实时备份,当系统中某个节点发生故障时,可以方便的故障切换(主从切换)3.3高可用(HA)3.4架构扩展四、MySQL主从形式一主一从......
  • vue 使用 vue-seamless-scroll 实现LED屏滚动效果
    yarnaddvue-seamless-scroll<divclass="index-roll"><vue-seamless-scroll:data="partnerList":class-option="optionLeft"><ul><liv-for=&quo......
  • mac使用【预览】实现和win一样的【画图】功能
    1,打开预览软件,这个是mac自带的2,截屏3,全选删除截图4,打开工具栏按一下画笔一样的图标把工具栏显示出来就可以随便画了(或者选择菜单:显示-显示标记工具栏)。注意先调整一下画布尺寸,不然可花区域会比较小,然后就可以愉快的花各种图案了可以改颜色,添加字体,等,......
  • .NET7使用HttpClient实现查询天气预报接口
    朋友做网站需要根据城市展示天气预报,找了一圈没有找到靠谱的接口,今天在中央气象台的官网查询某个城市找到了接口,先用postman试了一下居然可以使用,可以查询某个城市7天的天气预报等信息。但是查询编码是气象台自己的编码,在网上搜索了一下居然有这个编码。本文使用HttpClient方法查......
  • C++ 学习 第四天
    流程控制练习题1.控制台输入一个数(不多于五位),并将每一位上的数进行输出2.一个球从100米的高度自由落下,每次落地后反跳回原高度的一半;再落下,求他在第10次落地时,共经过了多少米?第十次反弹多高? 3.接上题,球经历多少次反弹后,反弹高度小于1米?4.计算1000内的完数。完数:一个数恰好......
  • 栈的定义及基本操作实现(顺序栈)
    个人主页:【......
  • 【Unity/大气渲染】单次散射的原理和简单实现
    这篇随笔将会简单实现一个基于物理的相对真实的大气渲染效果如下图,太空中的星球、相对真实的天空盒如果没有大气,太阳光没有直接照射到的地方将会是一片黑暗而我们能从太空中看到星球表面泛起的蓝光,日出时的美丽景色,都得于太阳光在大气中的散射地球的大气中充斥着诸如空气分子,......