当前位置: 首页 > news >正文

C 语言标准库 - <errno.h>

目录

1.errno 变量

2.宏


1.errno 变量

errno.h 声明了一个 int 类型的 errno 变量,用来存储错误码(正整数)。

如果这个变量有非零值,表示已经执行的程序发生了错误。

#include <errno.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>int main() {int x = -1;errno = 0;int y = sqrt(x);if (errno != 0) {fprintf(stderr, "sqrt error; program terminated.\n");exit(EXIT_FAILURE);}return 0;
}

上面示例中,计算一个负值的平方根是不允许的,会导致errno不等于0

如果要检查某个函数是否发生错误,必须在即将调用该函数之前,将errno的值置为0,防止其他函数改变errno的值。

2.宏

变量errno的值通常是两个宏EDOMERANGE。这两个宏都定义在errno.h。它们表示调用数学函数时,可能发生的两种错误。

  • 定义域错误(EDOM):传递给函数的一个参数超出了函数的定义域。例如,负数传入sqrt()作为参数。
  • 取值范围错误(ERANGE):函数的返回值太大,无法用返回类型表示。例如,1000 传入exp()作为参数,因为 e^1000 太大,无法使用 double 类型表示。

使用数学函数时,可以将errno的值与 EDOM 和 ERANGE 比较,用来确定到底发生了哪一类错误。

http://www.lryc.cn/news/482761.html

相关文章:

  • Golang自带的测试库testing的使用
  • 29.电影院售票系统(基于springboot和vue的Java项目)
  • 大学生就业平台微信小程序
  • Redis 缓存击穿
  • 初探鸿蒙:从概念到实践
  • PHP API的路由设计思路
  • 工程师 - 如何访问Github
  • 222. 完全二叉树的节点个数 迭代
  • 中心极限定理的三种形式
  • React Native 全栈开发实战班 - 导航栈定制
  • 扬州BGP高防服务器可以给企业带来哪些好处?
  • 题目讲解15 合并两个排序的链表
  • leetcode92:反转链表||
  • arkUI:遍历数据数组动态渲染(forEach)
  • js中import引入一个export值可以被修改。vue,react
  • PDF24:多功能 PDF 工具使用指南
  • 域名解析线路类型有哪几种
  • Spring资源加载模块,原来XML就这,活该被注解踩在脚下 手写Spring第六篇了
  • [运维][Nginx]Nginx学习(2/5)-Nginx高级
  • 【快捷入门笔记】mysql基本操作大全-SQL数据库
  • 【LeetCode】【算法】15. 三数之和
  • 传输协议设计与牧村摆动(Makimoto‘s Wave)
  • JMeter进阶篇
  • LabVIEW编程基础教学(一)--介绍
  • HVV蓝队基础
  • [运维][Nginx]Nginx学习(1/5)--Nginx基础
  • 创客节小学组C++模拟题
  • 阿里云ECS服务器使用限制及不允许做的事情
  • Linux开发讲课49--- Linux 启动过程分析
  • Java-03