C 标准库 <errno.h>与 <float.h>

C 标准库 <errno.h>

C 标准库的 errno.h 头文件定义了整数变量 errno,它是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。该宏扩展为类型为 int 的可更改的左值,因此它可以被一个程序读取和修改。

在程序启动时,errno 设置为零,C 标准库中的特定函数修改它的值为一些非零值以表示某些类型的错误。您也可以在适当的时候修改它的值或重置为零。

errno.h 头文件定义了一系列表示不同错误代码的宏,这些宏应扩展为类型为 int 的整数常量表达式。

库宏

下面列出了头文件 errno.h 中定义的宏:

序号宏 & 描述
1extern int errno
这是通过系统调用设置的宏,在错误事件中的某些库函数表明了什么发生了错误。
2EDOM Domain Error
这个宏表示一个域错误,它在输入参数超出数学函数定义的域时发生,errno 被设置为 EDOM。
3ERANGE Range Error
这个宏表示一个范围错误,它在输入参数超出数学函数定义的范围时发生,errno 被设置为 ERANGE。

C 标准库 <float.h>

C 标准库的 float.h 头文件包含了一组与浮点值相关的依赖于平台的常量。这些常量是由 ANSI C 提出的,这让程序更具有可移植性。在讲解这些常量之前,最好先弄清楚浮点数是由下面四个元素组成的:

组件组件描述
S符号 ( +/- )
b指数表示的基数,2 表示二进制,10 表示十进制,16 表示十六进制,等等…
e指数,一个介于最小值 emin 和最大值 emax 之间的整数。
p精度,基数 b 的有效位数

基于以上 4 个组成部分,一个浮点数的值如下:

floating-point = ( S ) p x be

floating-point = (+/-) precision x baseexponent

库宏

下面的值是特定实现的,且是通过 #define 指令来定义的,这些值都不得低于下边所给出的值。请注意,所有的示例 FLT 是指类型 float,DBL 是指类型 double,LDBL 是指类型 long double。

描述
FLT_ROUNDS定义浮点加法的舍入模式,它可以是下列任何一个值:-1 - 无法确定0 - 趋向于零1 - 去最近的值2 - 趋向于正无穷3 - 趋向于负无穷
FLT_RADIX 2这个宏定义了指数表示的基数。基数 2 表示二进制,基数 10 表示十进制,基数 16 表示十六进制。
FLT_MANT_DIG
DBL_MANT_DIG
LDBL_MANT_DIG
这些宏定义了 FLT_RADIX 基数中的位数。
FLT_DIG 6
DBL_DIG 10
LDBL_DIG 10
这些宏定义了舍入后不会改变表示的十进制数字的最大值(基数 10)。
FLT_MIN_EXP
DBL_MIN_EXP
LDBL_MIN_EXP
这些宏定义了基数为 FLT_RADIX 时的指数的最小负整数值。
FLT_MIN_10_EXP -37
DBL_MIN_10_EXP -37
LDBL_MIN_10_EXP -37
这些宏定义了基数为 10 时的指数的最小负整数值。
FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
这些宏定义了基数为 FLT_RADIX 时的指数的最大整数值。
FLT_MAX_10_EXP+37
DBL_MAX_10_EXP+37
LDBL_MAX_10_EXP +37
这些宏定义了基数为 10 时的指数的最大整数值。
FLT_MAX 1E+37
DBL_MAX 1E+37
LDBL_MAX 1E+37
这些宏定义最大的有限浮点值。
FLT_EPSILON 1E-5
DBL_EPSILON 1E-9
LDBL_EPSILON 1E-9
这些宏定义了可表示的最小有效数字。
FLT_MIN 1E-37
DBL_MIN 1E-37
LDBL_MIN 1E-37
这些宏定义了最小的浮点值。

在线示例

下面的示例演示了 float.h 文件中定义的一些常量的使用。

#include <stdio.h>
#include <float.h>
int main()
{printf("float 的最大值 = %.10e\n", FLT_MAX);printf("float 的最小值 = %.10e\n", FLT_MIN);printf("数字中的位数 = %.10e\n", FLT_MANT_DIG);
}

让我们编译和运行上面的程序,这将产生下列结果:

float 的最大值 = 3.4028234664e+38
float 的最小值 = 1.1754943508e-38
number 的位数 = 7.2996655210e-312

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/187178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产linux单用户模式破解无密码登陆 (麒麟系统用户登录密码遗忘解决办法)

笔者手里有一批国产linu系统&#xff0c;目前开始用在日常的工作生产环境中&#xff0c;我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux&#xff0c;统信UOS等&#xff0c;基本都是基于debian再开发的linux。 问题描述&#xff1a; 因为…

基于AT89C51单片机的倒数计时器设计

1&#xff0e;设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表&#xff0c;设计的系统实用性强、操作简单&#xff0c;实现了智能化、数字化。 本设计采用单片机为主控芯片&#xff0c;结合周边电路组成LED彩灯的闪烁控制系统器&#xff0c;用来控制红色…

用于缓存一些固定名称的小组件

项目中&#xff0c;用于缓存姓名、地名、单位名称等一些较固定名称的id-name小组件。用于减少一些表的关连操作和冗余字段。优化代码结构。扩展也方便&#xff0c;写不同的枚举就行了。 具体用法&#xff1a; {NameCacheUser.USER.getName(userId);NameCacheUser.ACCOUNT.getN…

excel合并单元格教程

在表格里&#xff0c;总是会遇到一级表格、二级表格的区别&#xff0c;这时候一级表格会需要合并成一个大格子&#xff0c;那么excel如何合并单元格呢&#xff0c;其实使用快捷键或者功能键就可以了。 excel如何合并单元格&#xff1a; 1、首先我们用鼠标选中所有要合并的单元…

最大公约数的C语言实现xdoj31

时间限制: 1 S 内存限制: 1000 Kb 问题描述: 最大公约数&#xff08;GCD&#xff09;指某几个整数共有因子中最大的一个&#xff0c;最大公约数具有如下性质&#xff0c; gcd(a,0)a gcd(a,1)1 因此当两个数中有一个为0时&#xff0c;gcd是不为0的那个整数&#xff…

Redis编码类型及对应含义

对象类型编码类型(encoding)取值范围Stringintlong长度范围内的数字embstr长度小于40的value值。数字和字符。raw长度大于40的value值Listziplist所有元素长度小于64字节&#xff0c;并且列表元素的个数小于512个linkedlist不满足ziplist的数据Setintset纯数字&#xff0c;列表…

分治法之查找最大值

思路: 定义一个递归函数 findMax&#xff0c;它接受三个参数&#xff1a;数组 arr、起始位置 start 和结束位置 end。如果 start 等于 end&#xff0c;说明数组中只有一个元素&#xff0c;直接返回该元素的值作为最大值。否则&#xff0c;计算数组的中间位置 mid&#xff0c;可…

XXL-Job详解(一):组件架构

目录 XXL-Job特性系统组成架构图调度模块剖析任务 “运行模式” 剖析执行器 XXL-Job XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 特性 1、简单&#…

java+springboot实验室管理系统的设计与实现ssm+jsp

课题研究内容&#xff1a; &#xff08;1&#xff09; 系统需求分析&#xff08;构成模块&#xff0c;系统流程&#xff0c;功能结构图&#xff0c;系统需求&#xff09; &#xff08;2&#xff09; 实验室课程安排功能模块&#xff08;课程的录入和调补&#xff09; &#xff…

prompt提示

用例生成 # 任务描述 作为一个高级c程序员&#xff0c;需要完成下列功能的gtest测试用例 # 功能描述 给定两个数字型字符串s1和s2,求和&#xff0c;返回值也是字符串 # 接口举例 调用strAdd("123", "132"),输出“255” # 输出要求 - 入参为空串、nu…

wyler水平仪维修WYLER倾角仪维修CH-8405

瑞士WYLER电子水平仪维修&#xff1b;BIueCLINO倾斜度测量仪维修&#xff1b;wyler电子倾角仪维修。 水平仪常见故障及处理方法 1、 仪表通电不工作。 A、检查仪表220V电源端子接线是否正确 B、检查仪表电容是否熔断&#xff1b; C、拧下仪表后的固定螺钉&#xff0c;将表…

王道数据结构课后代码题p40 4.在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值唯一) (c语言代码实现)

本题代码为 void deletemin(linklist* L)//找到最小值并删除 {lnode* p (*L)->next, * pre *L;lnode* s p,*sprepre;while (p ! NULL)//找到最小值{if (p->data < s->data){s p;spre pre;}p p->next;pre pre->next;}p s->next;spre->next p;…

有IP没有域名可以申请证书吗?

一、IP证书是什么&#xff1f; ip证书是用于公网ip地址的SSL证书&#xff0c;与我们通常所讲的SSL证书并无本质上的区别&#xff0c;但由于SSL证书通常颁发给域名&#xff0c;而组织机构需要公共ip地址的SSL证书&#xff0c;这类SSL证书就是我们所说的ip证书。ip证书具有安全、…

仅仅通过提示词,GPT-4可以被引导成为多个领域的特定专家

The Power of Prompting&#xff1a;提示的力量&#xff0c;仅通过提示&#xff0c;GPT-4可以被引导成为多个领域的特定专家。微软研究院发布了一项研究&#xff0c;展示了在仅使用提策略的情况下让GPT 4在医学基准测试中表现得像一个专家。研究显示&#xff0c;GPT-4在相同的基…

查看代码运行时间

#include<bits/stdc.h> signed main() {clock_t start_time clock();std::cout<<"hello\n";double tot_time double(clock() - start_time) / 1000; std::cout << "\n代码跑了" << tot_time << "秒";return 0; …

上海毅速丨新材料将推动3D打印在压铸行业的应用

压铸是一种应用广泛的制造工艺&#xff0c;它的制造原理是将液态或半液态金属&#xff0c;在高压作用下&#xff0c;以高速度填充压铸模具型腔&#xff0c;并在压力下快速凝固而获得铸件的一种方法。压铸模的设计和制造需要考虑到多方面的因素&#xff0c;如模具材料、结构、冷…

Java部署服务 Java -jar命令讲解

1. 当前ssh窗口被锁定&#xff0c;可按CTRL C打断程序运行&#xff0c;或直接关闭窗口&#xff0c;程序退出 #正常启动jar包 java -jar XXX.jar#当前ssh窗口被锁定&#xff0c;可按CTRL C打断程序运行&#xff0c;或直接关闭窗口&#xff0c;程序退出。 2. 当前ssh窗口不被锁…

探讨几种在CentOS 7上实现文件上传的方法

最近服务器过期了&#xff0c;把之前服务器的数据库都备份了下来&#xff0c;现在准备迁移各种服务&#xff0c;这就涉及到文件传输。之前用得多的都是xshell里的xtp来传&#xff0c;校园网禁用了ssh协议&#xff0c;还有一大堆乱七八糟的协议&#xff0c;我一般用的代理方法或…

redis sentinel 错误处理

环境 redis-ha主从部署到了k8s上 主从报错日志 主库日志 1:M 29 Nov 2023 07:00:19.277 # Diskless rdb transfer, done reading from pipe, 1 replicas still up. 1:M 29 Nov 2023 07:00:20.058 * Background RDB transfer terminated with success 1:M 29 Nov 2023 07:00…

利用python编写后端程序 通用代码详解 项目实现

前言 最近自己正好有时间&#xff0c;想要自己搭建微信小程序&#xff0c;也正好记录一下自己的搭建过程和内容。 搭建准备工作 这里我使用的时pycharm编辑器。在后端开发中&#xff0c;我们需要三个库&#xff1a; import pymysql from flask import request, Fl…