limits.h详解


概述

<limits.h>

头文件<limits.h>定义了一些表示整型大小的常量。以下所列的值是可接受的最小值,在实际系统中可以使用更大的值。
|宏|值|备注|
|-|-|-|
|CHAR_BIT| 8| char 类型的位数|
|CHAR_MAX| UCHAR_MAX 或 SCHAR_MAX| char 类型的最大值|
|CHAR_MIN| 0 或 SCHAR_MIN| char 类型的最小值|
|INT_MAX |32767| int 类型的最大值|
|INT_MIN| -32767| int 类型的最小值 |
|LONG_MAX| 2147483647| long 类型的最大值|
|LONG_MIN| -2147483647| long 类型的最小值|
|SCHAR_MAX| +127| signed char 类型的最大值|
|SCHAR_MIN| -127| signed char 类型的最小值|
|SHRT_MAX| +32767 |short 类型的最大值|
|SHRT_MIN| -32767| short 类型的最小值 |
|UCHAR_MAX| 255| unsigned char 类型的最大值|
|UINT_MAX| 65535| unsigend int 类型的最大值|
|ULONG_MAX| 4294967295| unsigned long 类型的最大值|
|USHRT_MAX| 65535| unsigned short 类型的最大值 |

<float.h>

下表列出的名字是<float.h>的一个子集,它们是与浮点算术运算相关的一些常量。给出的每个值代表相应量的最小取值。各个实现可以定义适当的值。
|宏|值|备注|
|-|-|-|
|FLT_RADIX| 2| 指数表示的基数,例如 2、16|
|FLT_ROUNDS|-1(无法确定);0(趋向于0);1(趋向最近的值);2(趋向于正无穷);3(趋向于负无穷)| 加法的浮点舍入模式|
|FLT_DIG| 6| 表示精度的十进制数字|
|FLT_EPSILON| 1E-5| 最小的数 x,x 满足:1.0 + x ≠ 1.0|
|FLT_MANT_DIG|-| 尾数中的数(以 FLT_RADIX 为基数)|
|FLT_MAX| 1E+37| 最大的浮点数|
|FLT_MAX_EXP|-| 最大的数 n,n 满足 FLT_RADIX^n-1 仍是可表示的|
|FLT_MIN| 1E-37| 最小的规格化浮点数|
|FLT_MIN_EXP|-| 最小的数 n,n 满足:10^n是一个规格化数|
|DBL_DIG| 10| 表示精度的十进制数字|
|DBL_EPSILON| 1E-9| 最小的数 x,x 满足:1.0 + x ≠ 1.0|
|DBL_MANT_DIG|-| 尾数中的数(以 FLT_RADIX 为基数)|
|DBL_MAX| 1E+37| 最大的双精度浮点数 |
|DBL_MAX_EXP|-| 最大的数 n,n 满足 FLT_RADIX^n-1 仍是可表示的|
|DBL_MIN| 1E-37| 最小的规格化双精度浮点数|
|DBL_MIN_EXP|-| 最小的数 n,n 满足:10n是一个规格化数 |

示例

<limits.h>

代码:

#include <stdio.h>
#include <limits.h>
int main()
{
   printf("The number of bits in a byte %d\n", CHAR_BIT);
   printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);
   printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);
   printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);
   printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);
   printf("The maximum value of SHORT INT = %d\n", SHRT_MAX); 
   printf("The minimum value of INT = %d\n", INT_MIN);
   printf("The maximum value of INT = %d\n", INT_MAX);
   printf("The minimum value of CHAR = %d\n", CHAR_MIN);
   printf("The maximum value of CHAR = %d\n", CHAR_MAX);
   printf("The minimum value of LONG = %ld\n", LONG_MIN);
   printf("The maximum value of LONG = %ld\n", LONG_MAX); 
   return(0);
}

输出:

PS G:\CSAPP>  & 'c:\Users\swy\.vscode\extensions\ms-vscode.cpptools-0.27.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-mq52rrfg.0x4' '--stdout=Microsoft-MIEngine-Out-ip53akbp.xpk' '--stderr=Microsoft-MIEngine-Error-w2wgdudi.u2t' '--pid=Microsoft-MIEngine-Pid-2z44vy4h.eqv' '--dbgExe=G:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gdb.exe' '--interpreter=mi'
The number of bits in a byte 8
The minimum value of SIGNED CHAR = -128
The maximum value of SIGNED CHAR = 127
The maximum value of UNSIGNED CHAR = 255
The minimum value of SHORT INT = -32768
The maximum value of SHORT INT = 32767
The minimum value of INT = -2147483648
The maximum value of INT = 2147483647
The minimum value of CHAR = -128
The maximum value of CHAR = 127
The minimum value of LONG = -2147483648
The maximum value of LONG = 2147483647
PS G:\CSAPP>

<float.h>

代码:

#include <stdio.h>
#include <float.h>
int main()
{
   printf("The maximum value of float = %.10e\n", FLT_MAX);
   printf("The minimum value of float = %.10e\n", FLT_MIN);
   printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}

输出:

PS G:\CSAPP>  & 'c:\Users\swy\.vscode\extensions\ms-vscode.cpptools-0.27.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-vvxt3sdn.m45' '--stdout=Microsoft-MIEngine-Out-lxfp3hgw.ny4' '--stderr=Microsoft-MIEngine-Error-uyop3yxf.gya' '--pid=Microsoft-MIEngine-Pid-flbfwpeh.hj3' '--dbgExe=G:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gdb.exe' '--interpreter=mi' 
The maximum value of float = 3.4028234664e+038
The minimum value of float = 1.1754943508e-038
The number of digits in the number = 1.1857575500e-322
PS G:\CSAPP> 

文章作者: swy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 swy !
评论
 上一篇
Conclusion of 2020 Conclusion of 2020
节日与神像最近大作业都已经搞定,毕设开题也准备八成了。如此看来,这几天是我的”节日“,所以我才有闲心写这个对于2020年的一点总结。 元旦那天晚上,我和队友在桃李地下肝机器学习的时候,我问了一个愚蠢至极的问题,”今天是什么日子,怎么这么多情
2021-01-04
下一篇 
hsqldb源代码阅读(一) hsqldb源代码阅读(一)
hsqldb 源代码阅读(一)服务器启动与初始化以debug模式启动服务器,到如图断点观察此时的调用堆栈:从下至上,为 run:310, Server$ServerThread(org.hsqldb.server): 这是开启了一个服务器
2020-04-07
  目录