C语言 assert 函数 - C语言零基础入门教程

目录

  • 一.assert 函数简介
  • 二.assert 函数使用
  • 三.assert 函数用法总结与注意事项
  • 四.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.assert 函数简介

对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性。简单地讲,断言就是对某种假设条件进行检查。assert 宏原型定义:

//需要包含头文件 <assert.h>
#include <assert.h>/*描述:如果它的条件返回错误,则终止程序执行参数:expression : 条件判断或者表达式*/void assert( int expression );

assert 将通过检查表达式 expression 的值来决定是否需要终止执行程序。也就是说,如果表达式 expression 的值为假(即为 0),那么它将首先向标准错误流 stderr 打印一条出错信息,然后再通过调用 abort 函数终止程序运行;否则,assert 无任何作用。

二.assert 函数使用

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 assert 函数
//@Time:2021/07/18 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
int main( void )
{FILE *fp;fp = fopen( "456.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件assert( fp );                           //所以这里不会出错fclose( fp );fp = fopen( "123.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败assert( fp );                           //所以这里出错fclose( fp );                           //程序永远都执行不到这里来return 0;
}

默认情况下,assert 宏只有在 Debug 版本(内部调试版本)中才能够起作用,而在 Release 版本(发行版本)中将被忽略。

三.assert 函数用法总结与注意事项

1.使用 assert 在函数开始处检验传入参数的合法性

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 assert 函数
//@Time:2021/07/18 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/int resetBufferSize(int nNewSize)
{//功能:改变缓冲区大小,//参数:nNewSize 缓冲区新长度//返回值:缓冲区当前长度//说明:保持原信息内容不变     nNewSize<=0表示清除缓冲区assert(nNewSize >= 0);assert(nNewSize <= MAX_BUFFER_SIZE);...
}

2.每个 assert 只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 assert 函数
//@Time:2021/07/18 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************///错误写法
assert(a>=0 && b<=0 && c>0);//正确写法
assert(a>=0);
assert(b<=0);
assert(c>0);

3. assert 缺点是频繁的调用会极大的影响程序的性能,增加额外的开销。

四.猜你喜欢

  1. C 语言 数组下标越界和内存溢出区别
  2. C 语言 使用指针遍历数组
  3. C 语言 指针和数组区别
  4. C 语言 指针数组和数组指针区别
  5. C 语言 野指针
  6. C 语言 函数值传递和址传递
  7. C 语言 函数不定长参数
  8. C 语言 函数指针
  9. C 语言 指针函数
  10. C 语言 回调函数 callback
  11. C 语言 #pragma once
  12. C 语言 #include <> 与 #include “” 区别
  13. C 语言 const 修饰函数参数
  14. C 语言 const 和 define 区别
  15. C 语言 #运算符
  16. C 语言 ##运算符
  17. C 语言 __VA_ARGS__
  18. C 语言 ##__VA_ARGS__
  19. C 语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C 语言 va_start 宏
  21. C 语言 va_end 宏
  22. C 语言 va_arg 宏
  23. C 语言 vprintf 函数
  24. C 语言 va_start / va_end / va_arg 自定义 printf 函数
  25. C 语言 main 函数
  26. C 语言 main 函数参数 main(int argc, char *argv[])
  27. C 语言 exit 函数
  28. C 语言 abort 函数
  29. C 语言 assert 函数

未经允许不得转载:猿说编程 » C 语言 assert 函数

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

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

相关文章

趣挨踢栏目精华汇总

出品 | CSDN云计算 有问有答&#xff0c;一问一答的形式&#xff0c;帮助大家快速解决更多专业难题。 出品 | CSDN云计算 趣挨踢&#xff0c;用最轻松活泼的形式&#xff0c;让你看尽生活百态。 趣挨踢 | 30 个让程序员崩溃的瞬间&#xff0c;笑死我了&#xff01; 趣挨踢 …

C语言 fopen 函数 - C语言零基础入门教程

目录 一.fopen 函数简介二.fopen 函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.fopen 函数简介 C 语言 fopen 函数表示以指定的模式&#xff0c;打开一个文件&#xff0c;函数声明如下&#xff1a; /* *描述&#xff1a;使用指定…

react之使用js创建虚拟DOM

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_使用js创建虚拟DOM</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 -->…

趣挨踢 | 只有挨踢人才能读懂的西游记

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘超本文转载自公众号&#xff1a;刘超的通俗云计算一、我佛造经传极乐话说我佛如来为度化天下苍生&#xff0c;有三藏真经&#xff0c;可劝人为善。就如图中所示&#xff0c;真经所藏之处&#xff0c;在于云端。佛祖所管辖之…

C语言 fclose 函数 - C语言零基础入门教程

目录 一.fclose 函数简介二.fclose 函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.fclose 函数简介 C 语言 fclose 函数用来关闭已经使用 fopen 打开成功的文件&#xff0c;函数声明如下&#xff1a; /* *描述&#xff1a;关闭文…

react虚拟和真实DOM

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>1_使用jsx创建虚拟DOM</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <div id"demo…

什么是5G,我们能从中得到什么?

戳蓝字“CSDN云计算”关注我们哦&#xff01;本文转载自公众号&#xff1a;SDNLAB今年&#xff0c;全球首个5G网络开通&#xff0c;向用户承诺了更快的数据传输速度和更低的延迟。此外&#xff0c;5G还为新的工业应用开辟了道路&#xff0c;成为实现“智能城市”的关键因素。5G…

C语言 fread 函数 - C语言零基础入门教程

目录 一.fread 函数简介二.fread 函数使用三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.fread 函数简介 C 语言 fread 函数用于读取文件中的数据到指定缓冲区中&#xff0c;fread 函数声明如下&#xff1a; /* *描述&#xff1a;关闭文件…

微服务、Kubernetes和无服务器之后,即将发生的……

戳蓝字“CSDN云计算”关注我们哦&#xff01;本文转载自公众号&#xff1a;K8S技术社区现在是2019年了&#xff0c;Docker容器已经是旧闻&#xff0c;至少&#xff0c;它已经变得如此主流&#xff0c;不再是尖端技术。当然&#xff0c;微服务架构、Kubernetes、无服务器功能、服…

C/C++ putchar函数 - C语言零基础入门教程

目录 一.前言二.putchar 函数简介三.putchar 函数使用四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.前言 C 语言中 putchar 函数和 getchar 函数类似&#xff0c;getchar 函数从控制台获取用户的输入字符&#xff0c;可以作为和用户交互&…

React之函数式组件

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>1_函数式组件</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <s…

C/C++ getchar函数 - C语言零基础入门教程

目录 一.getchar 函数简介 1.getchar 原理2.getchar 函数声明3.getchar 使用场景 二.getchar 函数使用三.getchar 函数妙用四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.getchar函数简介 1.getchar 原理 getchar 函数用于获取用户输入&a…

OpenStack精华问答 | OpenStack都有哪些基础服务?

戳蓝字“CSDN云计算”关注我们哦&#xff01;关于OpenStack的探讨几乎从未间断&#xff0c;从2010年10月份一个版本正式发布至今&#xff0c;OpenStack在8年发展历程中&#xff0c;成为了最有争议的那一个。今天&#xff0c;我们就来看看有关于OpenStack的精华问答吧1Q&#xf…

React之类式组件

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_类式组件</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <scri…

C/C++ atoi函数 - C语言零基础入门教程

目录 一.atoi 函数简介二.atoi 函数函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.atoi 函数简介 在 stdlib.h 中 atoi 函数,可用于将 char 字符串转为 int 整数类型&#xff0c;语法如下&#xff1a; /* *描述&#xff1a;将一个…

要闻君说:小米9已确认无线充电;华为着手操作的5G火车站启动建设仪式将于本月18日“登陆”;三星提出大力发展电信网络设备业务……...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 嗨&#xff0c;大家好&#xff01;偶是要闻君。新的一年诸多工作已紧锣密鼓在排队&#xff0c;《云要闻》栏目也将继续用心陪伴在看官们周围&#xff0c;工作日第一天&#xff0c;来…

React之初始化state

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>state</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <script ty…

C/C++ itoa函数 - C语言零基础入门教程

目录 一.itoa 函数简介二.itoa 函数函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.itoa 函数简介 在 stdlib.h 中 itoa 函数,可用于将 int 整数类型转为 char 字符串&#xff0c;语法如下&#xff1a; /* *描述&#xff1a;将一个…

Storm精华问答 | task与executor有什么关系?

戳蓝字“CSDN云计算”关注我们哦&#xff01;归于Apache社区&#xff0c;Storm被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍。而目前已是分布式技术领域最新爆发点&#xff0c;Storm更是流计算技术中的佼佼者和主流。今天我们就一起来看看Sto…

React之props基本使用

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>1_props基本使用</title> </head> <body> <!-- 准备好一个容器 --> <div id"test1"></div> <div id"test2&qu…