写出诗一样代码的灵丹妙药: const与assert

news/2024/11/17 12:54:18/

 

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,希望可以帮到读者们哦。

🥴内容分享:本期会对C语言中的重点知识数组进行具体讲解,各位看官姥爷快搬好小板凳坐好叭。

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)。

前言

在写代码的过程中,想必大家应该会时不时遇到一些自己写出来的bug,它跟幽灵一样时不时吓你一跳,让你触不及防,写的程序也会突然崩溃。在这种时候就得拿出我们的灵丹妙药const和assert来制裁它们了。

什么是const和assert

const是C语言关键字中的一种,const是constant的简写,用来定义常量,它限定一个变量不允许被改变,产生静态作用。const最开始推出的目的是为了取代预编译指令,取长补短。除此之外,const 更强大的地方是修饰函数参数、函数返回值、函数体。被 const 修饰的东西都受到强制保护,可以防止意外改动,提高程序的健壮性。

assert用百度百科的介绍,"在程序设计中,断言是一种放在程序中的一阶逻辑,目的是为了标示与验证程序开发者预期的结果-当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并给出错误消息。"C语言的断言是通过assert语句来实现的,用于捕获运行时不应该发生的非法情况。如果在执行断言时,对应的断言为真,啥事都没有发生,如果对应的断言为假,编译器就会出现异常。

const与assert的作用

对于函数的入参,不管是什么数据类型,也不管是 指针传递,还是 引用传递,只要加了 const 修饰,就可以防止函数内意外修改该参数,起到保护作用。

const在修饰指针变量的时候,const如果放在*的左边,修饰的是指针指向的内容。保证指针指向的内容不能通过指针改变。但是指针自身的内容可以改变。

const如果在*的右边,修饰的是指针自身的内容。保证指针自身的内容不能通过指针改变。但是指针指向的内容可以改变。

代码举例:

断言的作用就是编码人员在开发期间应该对函数的参数、代码中间执行结果合理地使用断言机制,确保程序的缺陷尽量在测试阶段被发现。

代码案例:

 


http://www.ppmy.cn/news/83984.html

相关文章

Unity3D安装:离线安装 Unity

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 在没有 Hub 的情况下离线安装 Unity Unity 下载助手 (Download Assistant) 支持离线部署。在这种部署方式中,可下载用于安装 Unity 的所有文件,然后生成脚本…

嵌入式Linux从入门到精通之第二节:语言基础测试题(加餐)

目录 C语言基础 测试题 1、用变量a给出下面的定义 2、有以下宏定义,A等于多少?

机器学习——特征工程

对于机器学习特征工程的知识,你是怎样理解“特征” 在机器学习中,特征(Feature)是指从原始数据中提取出来的、用于训练和测试机器学习模型的各种属性、变量或特点。特征可以是任何类型的数据,例如数字、文本、图像、音…

链接思想的力量:如何将你的思维联系起来以提高你的学习和记忆能力

是否发现自己收藏的笔记很少做回顾和复盘? 链接你的思维(LYT)是另一个笔记系统,LYT笔记系统理念进入个人知识管理(PKM)会提供更有效和令人满意的笔记体验。 在今天的文章中,您将了解什么是链接…

Redis7实战加面试题-基础篇(Redis复制(replica),Redis哨兵(sentinel),Redis集群(cluster))

Redis复制(replica) 就是主从复制,master以写为主,Slave以读为主。当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。 能干嘛:读写分离,容灾恢复,数据备份,水平扩容支撑高并发…

【Android入门到项目实战-- 11.2】—— 实现底部导航栏(RadioGroup+Fragment)

实现效果 效果如下,使用RadioGroup实现,不能左右滑动切换页面,适用于导航页里还有需要切换页面的场景,如果需要滑动效果,使用ViewPager实现。 准备工作 以下示例按照图上实现,具体多少个页面,按…

数据结构与算法(七)

二叉树 如果说树中的每个结点最多只能有两个子结点,这样的树我们就称为二叉树,二叉树可以为空。 特点: 每个结点最多有两棵子树,所以二叉树中不存在度大于二的结点棵树中,最大的结点的度称为树的度,结点的度:结点所…

iptables防火墙2

iptables防火墙 一:SNAT原理与应用 SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet(私有不能早Internet中正常路由)SNAT原理:修改数据包的源地址。 SNAT转换前提条件: 1.局域网各主机已正确设…