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

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.kler.cn/a/390925.html

相关文章:

  • FatLab:我的编程课程系列
  • 灰狼优化算法
  • Android 配置默认输入法
  • 安全生产管理的重要性:现状、痛点与改进之路
  • Unity3D学习FPS游戏(11)敌人AI巡逻(NavMesh)
  • P8680 [蓝桥杯 2019 省 B] 特别数的和
  • 创新培养:汽车零部件图像分割
  • yum配置,文件,命令详解
  • 综合案例铁锅炖(CSS项目大杂烩)
  • opencv_相关的问题
  • 【哲学和历史】-2 :《看,这是哲学》《50堂经典哲学思维课》读书笔记
  • Linux权限和开发工具(3)
  • 手把手教你30秒下载Typora通用版(mac、win适用)
  • 前端知识点---Javascript中检测数据类型函数总结
  • 解决MAC安装QT启动项目不显示窗口问题
  • Unity导出APK加速与导出失败总结(不定时更新)
  • 丹摩征文活动|智谱AI引领是实现文本可视化 - CogVideoX-2b 部署与使用
  • 一篇文章学会-图标组件库的搭建
  • Mac电脑如何解压rar压缩包
  • Python爬虫 | 什么是反爬虫技术与机制
  • Unity类银河战士恶魔城学习总结(P120 BUff Item Effect各种增益效果)
  • 迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证
  • 人工智能的现状、应用与面临的挑战
  • 基于Zynq FPGA对雷龙SD NAND的测试
  • AI教育革命:个性化学习的新篇章
  • 注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型