1754_C语言assert函数功能初探

news2024/11/21 2:22:50

全部学习汇总: GreyZhang/c_basic: little bits of c. (github.com)

最近学习的过程中遇到了C语言中的assert函数,弄不明白这个函数到底是什么用。简单查了一下总结内容如下:

首先,此函数的声明头文件在assert.h中,使用的时候需要包含这个头文件,否则编译的时候肯能会出现warning。函数的原型如下:

void assert(int expression);

其中,expression代表一个结果为整形的表达式。如果这个表达式的计算值为false(也就是0),那么函数将会输出一条提示信息并调用abort函数终止整个程序。

写一个测试代码如下:

#include "stdio.h"

#include "assert.h"

int main(void)

{

         int a = 1;

         assert(a == 0);

         printf("assert has not been run!\n");

         return 0;

}

编译与执行结果如下:

我调试的时候使用的系统平台为Windows10 HB,编译成功,运行的时候给出了表达式为0的提示并且终止了程序。其实,在我现在的平台上表现为程序崩溃。修改代码,让表达式不再为0,如下:

#include "stdio.h"

#include "assert.h"

int main(void)

{

         int a = 1;

         assert(a == 1);

         printf("assert has not been run!\n");

         return 0;

}

编译与运行结果如下:

这一次,assert没有给出信息输出提示也没有触发程序的终止或者崩溃。在assert函数调用之后的语句也得到了执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构之哈夫曼树和哈夫曼编码

切入正题之前,我们先了解几个概念: 路径:从树的一个结点到另一个结点分支所构成的路线路径长度:路径上的分支数目树的路径长度:从根结点出发到每个结点的路径长度之和带权路径长度:该结点到根结点的路径长…

Spring概念:容器、Ioc、DI

目录 什么是容器? 什么是 IoC? 传统程序的开发 理解 Spring IoC DI 总结 我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它…

从C语言到C++_22(继承)多继承与菱形继承+笔试选择题

目录 1. 继承 1.1 继承的概念 1.2 继承的定义格式 1.3 访问限定符和继承方式 1.4 继承中的赋值 1.5 继承中的作用域 2. 子类(派生类)的默认成员函数 2.1 子类的构造函数 2.2 子类的拷贝构造函数 2.3 子类的赋值重载 2.4 子类的析构函数 2.5 小总结 3. 继承与友元…

欧洲运输业的创新能力评估报告(英)(附下载)

5月,联合研究中心(JRC)在交通研究与创新监测与信息系统(TRIMIS)上发布了一份报告,提供了对欧盟运输部门创新能力的最新评估。TRIMIS通过欧盟层面的宏观指标分析,对运输创新能力进行定期评估。 该报告分析了研究与开发(…

Tuxera NTFS2023Mac电脑免费U盘硬盘读写工具

Mac用户在使用NTFS格式移动硬盘时,会遇到无法写入硬盘的情况。要想解决无法写入的问题,很多人选择使用Mac读写软件。面对市面上“众多”的读写硬盘软件,用户应该怎么选择呢?初次接触移动硬盘的伙伴可能不知道移动硬盘怎么和电脑连…

探析ModaHub魔搭社区中文文本生成图片AI模型的现状、趋势和未来发展方向

目录 一、现状分析 二、趋势分析 三、未来预测 ModaHub魔搭社区是一个专注于AI模型开发和分享的平台,其中文本生成图片AI模型是其中的一个重要领域。本文将通过对ModaHub魔搭社区中文文本生成图片AI模型排行榜的数据分析,来探讨该领域的现状、趋势和未…

Linux安装nginx 反向代理 负载均衡 动静分离 高可用等使用

随着软件需求的发展,现在很多的系统都需要保证高可用、高并发,在此需求之下就需要部署的服务能够不间断的提供服务即避免单点故障问题因此系统需要做集群部署同时还能提升qps、tps等指标;集群部署后的服务就需要对用户的请求能够负载均衡&…

12 通用同步异步收发器(USART)

目录 通用同步异步收发器(USART) 理论部分 USART概览 STM32和PC通信模型 STM32和PC通过RS-232标准通信 RS-232标准介绍 RS-232协议电平标准对比 RS-232标准的物理接口规定及接口标号 RS-232标准下接口标号的作用 RS-232标准数据传输协议层 协议…

探索数字化前沿:数字化产品引领科技创新风潮

随着数字化时代的到来,国内数字化产品市场蓬勃发展,涌现出许多引领行业变革的产品。本文将介绍几个在数字孪生和人工智能领域取得突破的国内产品,带大家了解数字化产品的创新应用和影响力。 山海鲸可视化:山海鲸可视化是一款强大…

Linux 常用命令记录

Linux(Ubuntu) 常用命令的总结 总结工作中用到的ubuntu命令,和添加一些常见的Linux的命令; 1.文件操作&常见命令操作 前置补充:Linux 终端提示符 && 命令语法 Centos[rootoldboy_python ~] ## [用户名主机机器名 路径] 提示符# 用户名 ro…

《计算机系统与网络安全》 第十章 防火墙技术

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

Three.js快速入门

Three.js快速入门 1、threejs文件包下载和目录简介 下载地址: 网盘链接:https://pan.baidu.com/s/1_Ix8TiOScypNcQe3BIl5vA?pwdrrks 提取码:rrksthreejs文件资源目录介绍 three.js-文件包 └───build——three.js相关库,可以引入你的.html文件中…

Frida遍历启动App所有Activity/Service

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一、需求 在一些大型App中,往往注册了大量的Activity和Service,这在App的AndroidManifest.xml文件可以清晰呈现。…

Centos7完整安装

一、前言 由于使用VMware workstation使用典型安装以及默认安装方式进行安装的Centos多存在组件不足的问题,这使得使用上述方式进行安装的系统在一些特定情况下需要安装组件,致使系统不是很便利,本文提供了在VMware workstation下进行完整安装…

Verdi之nTrace/nSchema

目录 3.nTrace介绍 3.1 启动Verdi 3.2查看Verdi中的设计结构 3.3查看Verdi中的验证结构 3.4 查找模块和trace信号 3.5 查找string 3.6 信号drive/load 3.7 快速查看设计有哪些信号 4 nSchema 4.1 如何打开原理图 4.2 如何查找 nShema window中器件的源码 4.3 如何显示原理…

【Java面试题】框架篇——Redis

文章目录 Redis的使用场景Redis支持的数据类型如何在Redis中实现分布式锁Redis和Mysql的事务有什么区别?Redis缓存穿透如何解决?Redis缓存雪崩如何解决?什么是缓存击穿,如何解决?Redis是单线程模式的,为什么…

chatgpt赋能python:Python超大数计算

Python超大数计算 介绍 在日常编程中,我们常常需要处理大量数据。这些数据可以是普通的整数或浮点数,但有时候我们需要计算的数据可能会超出计算机处理的数值范围。这时,我们需要使用更为高级的算法来进行超大数计算。 Python语言因为其简…

【Java】 Java 中处理 null 或缺失数据

本文仅供学习参考! 相关教程地址: https://juejin.cn/post/7234924083842154556 https://cloud.tencent.com/developer/article/1107739?areaSource106005.3 https://www.developer.com/java/null-data-java/ 将某些内容表示为空白或不存在始终是编程中…

TX Text Control 31 sp3 for ActiveX-VB6-Crack

Visual Basic 6 应用程序的文档处理 适用于 Visual Basic 6 和基于 COM 的语言的综合文字处理和报告 视窗用户界面 功能齐全的文档编辑器 TX Text Control 是一款免版税、完全可编程的丰富编辑控件,它在专为 Visual Studio 设计的可重用组件中为开发人员提供了广泛的…

数字空间【高校版】上线

WRITE-BUG团队一直在致力于推动科技创新与科研学习数字化建设,为学生的学习、老师的工作,插上数字化的翅膀。 目前,我们注意到高校在大力推进数字化建设,在内容管理上遇到以下问题亟待解决: 各个科研实验室资料、项目…