assert的使用

断言 assert() 的使用总结 assert()使用总结 1.头文件  assert()定义在头文件      #include中. 2.功能及其用法 (1)使用     1.1 . assert()是程序调试的一个重要手段,使用方法为assert(expression).       它可以在debug和release两种模式下进行使用,并且在两种模式下的使用下产生的结果是不相同的. a.debug模式 阅读详情

assert是C语言标准库<assert.h>中定义的一个宏,用于在程序中插入调试断言(assertion)。它可以用于在程序执行过程中对特定条件进行检查,如果条件不满足,则会导致程序立即终止,并输出一条诊断信息。

assert的基本语法格式如下:

#include <assert.h>

assert(条件);

其中,条件是一个可以产生布尔值(非零或零)的表达式。如果条件的计算结果为零(即假),assert宏将产生一条诊断信息,并终止程序执行。诊断消息通常包括条件表达式、出现位置等信息,有助于开发者定位问题。

在开发阶段,将assert用于检查假设条件是否成立或者预期的情况是否发生,有助于发现并定位程序中的错误。一般来说,assert应当仅用于检查逻辑上“永远不应该发生”的情况,而不应该用于处理可能出现的情况。

以下是一个简单的示例:

#include<stdio.h>
#include<assert.h>

int main()
{
	int x = 10;
	int y = 20;

	assert(x == y);//判断x是否和y相等,如果不相等,程序将结束运行,并输出一条诊断信息

	printf("程序继续执行。\n");

	return 0;
}

以下是程序运行的结果: 

在上面这个例子中,assert(x == y)检查了x == y是否成立。由于x不等于y,因此程序会在该断言处终止执行,并输出一条诊断信息。

需要注意的是,在生产环境中,assert中的检查会被关闭(通常通过NDEBUG宏),这意味着assert不会造成程序终止,因此不应该在assert中包含会造成副作用的代码。

#define NDEBUG

更多C语言相关练习请访问:test_c: C语言练习,包括常见语法练习以及小项目练习。 (gitee.com)

assert和if使用的环境及使用场景 在刚开始学习代码的时候,对于程序中检查程序有效性时有时用到assert,有时用if,感到非常困惑。比如,在多数的malloc函数后面对指针进行的操作都是用assert进行检查的,可能会造成一种错觉以为在malloc之后对申请空间的检测是用assert进行的,但可能也会看到用if对malloc进行判断并处理,到底是if还是assert呢?以及release和debug环境下两者会起到什么效果呢? 阅读详情

相关推荐

一、5.8GHz射频接收机链路仿真

5.8GHz射频接收机链路仿真 一、5.8GHz射频接收机链路仿真 文章目录5.8GHz射频接收机链路仿真目的一、原理1、仿真工具2、二次下变频超外超接收机二、要求三、内容总结 目的   1、熟悉射频接收机整体结构。   2、学习使用MATLAB工具进行行为级仿真。   3、进行简单的通信链路预算。   4、直观感受接收机各个模块对整体性能的影响。   5、分析增益、线性度、噪声系数等参数。 一、原理 1、仿真工具   MATLAB是一款功能强大的数学软件,针对不同领域提供各种工具箱,帮助设计者快

平乾的博客 6760

Assert的两种使用方法

一、assert (Boolean b); 如: int i = 5; assert i==6; System.out.println("正常我就打印"); 输出结果: Exception in thread "main" java.lang.AssertionError at TestDemo.TestDemo.main(TestDemo.java:7) 表示 assert后边紧...

MeatLoveJK的博客 2128

基于PDF文档结构的数字隐写

PDF隐写

xiongshivigor的博客 1426

Go 中 assert 使用

文章目录Go 中 assert 使用前言asset 包的获取新旧测试文件对比 Go 中 assert 使用 前言 在本周的服务计算作业中,我发现老师写的测试文件使用了 assert 函数代替了之前的 Errorf,这是我第一次看到这个函数,并且发现该函数用于测试文件十分方便,于是在此记录。 asset 包的获取 使用以下命令就可以获取 asset 程序包 go get github.com/stretchr/testify/assert 使用完此命令后可以在本地的 GOPATH/src 路径下发现多了三个文

qq_43267773的博客 1万+

RAG 赋能客服机器人:多轮对话与精准回复

在人工智能技术飞速发展的今天,客服机器人已成为企业提升服务效率的重要工具。然而,传统客服系统在多轮对话连贯性和精准回复能力上存在明显短板。检索增强生成(Retrieval-Augmented Generation, RAG)技术通过结合大语言模型(LLM)与外部知识库,为解决这一问题提供了创新路径。本文将深入探讨 RAG 在客服机器人中的应用,重点分析其如何实现多轮对话与精准回复,并结合实际案例与技术框架展开讨论。

shuizhudan223的博客 2142

B.3【智能标注】:基于Labelstudio的UIE半监督深度学习的智能标注方案(云端版),提效。

Label Studio 所提供的 Machine Learning Backend 提供了一个比较灵活的辅助人工标注的框架,我们通过它确实可以加快 nlp 数据的标注Label Studio 的 enterprise 版本提供了 Active Learning 的流程,不过从其描述看这个流程并不完美,尤其是 fit 部分,由于 Label Studio 低估了「Train」所花费的时间,所以每次标注都自动训练的流程可能并不会那么顺滑(会在链接时候等待一段时间)

丨汀、的博客 1840

C++入门——assert的使用

ASSERT()是什么 ASSERT()一般被称为断言,是一个调试程序时经常使用的宏。它被定义在<assert.h>头文件中,通常用于判断程序中是否出现了非法的数据,在程序运行时,它计算括号内的表达式的值。如果表达式的值为false(0),则程序报告错误,终止运行;如果不为0,则继续执行后面语句。 例如: ASSERT(n != 0); k = 10/n; ASSERT()与assert() ASSERT()只在Debug版本中有,在Release版本中则被忽略 ASSERT()是宏,

beilizhang的博客 5375

【异常】Cursor IDE 扩展主机超时错误处理文档The agent execution provider did not respond within 4 seconds.

该错误通常是 Cursor IDE 的临时性问题,不影响项目代码。大多数情况下,重新加载窗口或重启 IDE 即可解决。如果问题持续,可按上述进阶方案排查。重新加载窗口(最快)重启 IDE检查系统资源清理缓存检查扩展更多关于 AI+教育领域的干货,可以关注我的微信公众号第一时间获取哦~

奶爸的编程之路,也就一周冷个三天 2699

assert在python,在Python中使用assert的例子?

I've read about when to use assert vs. exceptions, but I'm still not "getting it". It seems like whenever I think I'm in a situation where I should use assert, later on in development I find that I'm...

weixin_34184444的博客 121

PyTorch生成式人工智能——VQ-VAE详解与实现

VQ-VAE (Vector Quantised-Variational AutoEncoder) 的核心思想就是将 VAE 的连续潜变量离散化。它通过学习一个码本 (Codebook) 来实现这一点,码本是一个包含有限个嵌入向量的字典。模型不是直接输出一个连续的潜在向量,而是从码本中找出与编码器输出最接近的嵌入向量来代替它。本节首先详细讲解 VQ-VAE 的技术原理,然后使用 PyTorch 从零开始实现 VQ-VAE 模型。

盼小辉丶的博客 3281

推理篇第3节:TensorRT基础——Builder、Engine、ExecutionContext生命周期

TensorRT模型优化与推理流程摘要 TensorRT是NVIDIA的深度学习推理优化器,通过Builder、Engine和ExecutionContext三阶段实现高效推理。Builder负责编译模型,执行图优化和kernel选择;Engine是优化后的推理计划;ExecutionContext管理运行时执行。编译期进行重量级优化(如算子融合、kernel调优),运行时快速执行。TensorRT 10.x引入新API,推荐使用buildSerialized方法。构建流程包括创建Builder、网络定义、

PeterPan的博客 503

QtApplets-Q_ASSERT使用

今天又学习了一个知识点,Q_ASSERT,神奇的宏,这个只有在Debug模式下才会生效的。主要功能就是在我们需要的位置使用该宏,在程序出错的地方,就会直接告诉我们出错的位置,对于大型项目来说,简直就是Debug利器。

DreamLife&Yaothos 2052

《S32系列芯片——Boot & HSE详解》持续更新中...

专栏总目录,将详细介绍S32系列芯片的Boot功能,最终给出HSE基于IVT的Secure Boot方案!!!

车载系统攻城狮 4384

断言ASSERT使用详解

一、assert的定义 原以为assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错"在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() 的用法像是一种"契约式编程",其表达的意思就是,程序在假设条件下,能够正常良好的运作,其实就相当于一个 if 语句: if(假设成立) { 程序正常运行; } else { 报错&&终止程序!(避免由程序运行引起更大的错误) } 但是这样写的话,就会有无数个 if 语句,甚至会出.

pl0020的博客 918

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

assert的使用 [转]

原文:《C语言C++中assert的用法》 作者:C语言与C++编程 目录 断言assert原型 断言assert使用示例 断言assert使用规则 断言assert原型 void assert(int expression); assert宏的原型定义在<assert.h>中 【作用】 先计算表达式expression的值为假(即为0),那么它就先向stderr打印一条出错信息,然后通过调用abort来终止程序。 【缺点】 频繁的调用会极大的影响程序的性能,增加额..

baidu_41388533的博客 295

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

assert在python_在Python中使用assert的例子?

I've read about when to use assert vs. exceptions, but I'm still not "getting it". It seems like whenever I think I'm in a situation where I should use assert, later on in development I find that I'm...

weixin_39585974的博客 135

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Pytest 之assert断言的使用

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

huace3740的博客 471

Swift Power Assert 使用教程

Swift Power Assert 使用教程 1、项目介绍 Swift Power Assert 是一个利用 Swift 的新宏功能创建的库,旨在为您的测试提供描述性的断言消息。这个库类似于 Spock、ScalaTest 和 Expecty 中的 Power Assert 功能,它能够在断言失败时提供详细的评估条件和值信息,并以易于理解的形式呈现。 2、项目快速启动 安装 首先,将 Swift...

gitblog_00042的博客 467

ASSERT 宏的使用

 msdn中是这样描述ASSERT的:ASSERTASSERT( booleanExpression )ParametersbooleanExpressionSpecifies an expression (including pointer values) that evaluates to nonzero or 0.RemarksEvaluates its argument. If the r

红羊家园 2093

java中Assert的使用

Web 应用在接受表单提交的数据后都需要对其进行合法性检查,如果表单数据不合法,请求将被驳回。类似的,当我们在编写类的方法时,也常常需要对方法入参进行合法性检查,如果入参不符合要求,方法将通过抛出异常的方式拒绝后续处理。举一个例子:有一个根据文件名获取输入流的方法:InputStream getData(String file),为了使方法能够成功执行,必须保证 file 入参不能为 null 或空白字符,否则根本无须进行后继的处理。这时方法的编写者通常会在方法体的最前面编写一段对入参进行检测的代码,如下所

xiaolong2230的博客 4069

assert使用技巧

摘自《游戏编程精粹1》 assert(条件) 如果条件不满足则会弹出对话框 技巧1 assert(条件&&"说明信息") 由于对话框中会显示条件,因此可以利用这个特点显示说明信息,帮助定位错误 技巧2 assert(!"说明信息") 因为assert(0)肯定会显示对话框,可以帮助提示程序运行到哪里了 技巧3 #define Assert(a

daily0403的专栏 535

Pytest之assert断言的使用

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

huace3740的博客 836

assert()使用

一、什么是assert()? 编写代码时,我们总是会做出一些假设,断言(assert)就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。 注意:assert(...

liyucheng987的博客 997

如何合理使用 assert

使用。

m0_74107848的博客 618

python的assert基本用法_Python如何合理使用assert(新手必读)

讲完了 assert 的基本语法之后,本节通过一些实际应用的例子,给大家演示一下 assert 在 中的用法,并明确 assert 的使用场景。第一个例子,假设 C 语言中文网想做 VIP 促销活动,准备进行打折,现需要写一个 apply_discount() 函数,要求是,向该函数传入原来的价格和折扣力度,该函数返回打折后的价格。apply_discount() 大致应该写成如下这样:#pri...

weixin_39960793的博客 916

Assert 使用

// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package org.springframework.util; import java.util.Collection; import java.util.Map; import java.util.function.Supplier; import org.springframework.l

gushenne的博客 561
上一篇: C语言——初识指针
下一篇: C语言——指针的使用和传址调用
Jett_Lin
博客等级 码龄5年 305粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值