函数简介篇——assert()宏

说明
  本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
  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 <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;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值