C语言中的assert断言

ops/2024/9/24 1:34:56/

Assert断言

        断言是程序中处理异常的一种高级形式。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。

用法:        

#include<assert.h>assert(表达式或者函数调用);

说明:

        // assert里面是一个表达式也可以是函数调用的返回值,判断真假
       // 如果为真,验证通过,如果为假在输出流里面添加一条错误信息,终止程序运行 

案例:

        

原码说明:

原码这个地方就是定义上面NDEBUG宏, 断言就替换成((void)0U)什么都不做 ,如果没有定义就开启断言。


http://www.ppmy.cn/ops/115057.html

相关文章

Vite + Vue + TypeScript 项目搭建总结

1. 初始项目 官网地址&#xff1a;Vite | 下一代的前端工具链 1.1 项目搭建 pnpm create vite然后按照提示操作&#xff0c;这里选择的是 Vue TypeScript&#xff0c;生成的目录结构如下 ├── .vscode │ └── extensions.json ├── public │ └── vite.svg …

linux-系统备份与恢复-备份工具

Linux 系统备份与恢复&#xff1a;备份工具 备份和恢复是 Linux 系统管理中的关键任务之一。有效的备份策略可以在数据丢失、系统崩溃或硬件故障时&#xff0c;帮助管理员快速恢复系统&#xff0c;避免数据丢失带来的严重后果。Linux 提供了多种备份工具&#xff0c;支持不同的…

MySQL误删数据怎么办?

一、背景 某天&#xff0c;张三打算操作数据库&#xff0c;删除自己项目的无用数据&#xff0c;但是一不小心数据删多了。被误删的数据&#xff0c;如何恢复呢&#xff1f;本文将介绍相关方法&#xff0c;以及现成的一些工具。 例子&#xff1a; 有一个表 create table per…

python是什么语言写的

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言。现今Python语言很火&#xff0c;可有人提问&#xff0c;这么火的语言它的底层又是什么语言编写的呢&#xff1f; python是C语言编写的&#xff0c;它有很多包也是用C语言写的。 所以说&#xff0c;C语言还是很…

QT For Android开发-打开PPT文件

一、前言 需求&#xff1a; Qt开发Android程序过程中&#xff0c;点击按钮就打开一个PPT文件。 Qt在Windows上要打开PPT文件或者其他文件很容易。可以使用QDesktopServices打开文件&#xff0c;非常方便。QDesktopServices提供了静态接口调用系统级别的功能。 这里用的QDesk…

Springboot的三层架构

package com.wzb.ThreeLevelsExercise20240919;public class Exercise {// 内聚&#xff1a;内聚是指一个模块或内部各元素的紧密程度。高内聚则是一个模块或类中的所有功能都是紧密相关的&#xff0c;专注于完成单一任务// 高内聚的好处&#xff1a;// 1.易于维护&#xff1a;…

Leetcode3289. 数字小镇中的捣蛋鬼

Every day a Leetcode 题目来源&#xff1a;3289. 数字小镇中的捣蛋鬼 解法1&#xff1a;哈希 代码&#xff1a; /** lc appleetcode.cn id3289 langcpp** [3289] 数字小镇中的捣蛋鬼*/// lc codestart class Solution { public:vector<int> getSneakyNumbers(vector…

动态IP与静态IP:哪种更适合用户使用?

在现代网络环境中&#xff0c;IP地址的管理对于网络的运行和安全至关重要。IP地址是网络中每一个设备的唯一标识符&#xff0c;通常分为动态IP和静态IP两种类型。每种类型都有其独特的优缺点&#xff0c;适用于不同的使用场景。本文将探讨动态IP和静态IP的特点&#xff0c;并分…