ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【C语言基础】C语言异常捕获机制 -assert

2022-01-20 15:01:46  阅读:159  来源: 互联网

标签:int 捕获 C语言 assert num include 代码


C语言异常捕获机制 - assert

快速入门

想快速入门该模块请访问:介绍,数据接口,示例代码

介绍

通常一个良好的代码功能运行环境都有功能运行前检查和运行后检查两个方面。C语言中提供了assert机制来做这件事情

  • assert 的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。
  • 使用 assert 的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

注意:

  • 每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败
  • 不能使用改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使用程序在真正运行时遇到问题
  • 只在debug版本中会生效,而release版本无效
  • 因此不建议使用assert去做异常捕获,或者代码质量检查,宁愿多写一点判断分支,来避免引起不必要的问题。

数据与接口

头文件

#include <assert.h>

数据

/* 无数据 */

接口

断言一个表达式是否为真,如果为假则报错退出程序 assert( expr );

伪代码

#include "assert.h" 

int your_func(入参) {
	assert(入参);
 
    ... 
        
    fp = open();
    assert(fp);
    
    ...
        
    return 0;
}

示例:比大小

#include <stdio.h>
#include <assert.h>

int main() {
	int num;
	printf("please enter the num:");
	scanf("%d", &num);

	assert(num > 10);

	printf("program succ ending\n");

	return 0;
}

参考链接

  1. https://www.runoob.com/w3cnote/c-assert.html

标签:int,捕获,C语言,assert,num,include,代码
来源: https://blog.csdn.net/immerseinstudy/article/details/122601671

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有