说明:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
QQ 群 号:513683159 【相互学习】
内容来源:
C语言 assert 函数 - C语言零基础入门教程、assert() 断言函数,用于在调试过程中捕捉程序错误、C语言解读assert函数
- 一、函数简介
- 二、函数示例
assert()常称为断言函数,大部分编译器下assert()是宏不是函数。
1️⃣宏原型:void assert( int expression );
2️⃣头文件:assert.h
3️⃣函数功能:
通过检查表达式expression的值来决定是否需要终止执行程序,通常用于调试中捕捉程序错误。
若表达式的值为0(条件不成立),则向标准输出流打印出错信息,调用abort()终止信息
若表达式的值为非0(条件成立),则无任何作用。
4️⃣返回值:无
5️⃣注意:
1.默认情况下,assert()宏仅在debug版本(调试版本)起作用,在release版本(发行版本)被忽略。
2.使用asser()在函数开始处检验传入参数的合法性
3.每个asser()只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败。
4.频繁的调用会极大的影响程序的性能,增加额外的开销。
5.不要用会改变环境的语句作为断言的表达式。
#include#include #include 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; }



