跳转到内容

C 编程/limits.h

来自 Wikibooks,开放的书籍,开放的世界

limits.h 包含常见变量类型特征的定义。这些值是实现特定的,但在符合 C 标准的实现中,其大小不能小于某些指定的数值。

C99 标准还规定了 <stdint.h> 头文件,该文件提供了明确大小的平台无关整数数据类型的名称和限制(例如,int32_t 用于 32 位有符号整数)。

成员常量

[编辑 | 编辑源代码]

"最小量级值" 列是标准指定的该常量的最小可能量级。特别是,_MIN 值表示在很少使用的补码和符号大小形式中可表示的最小量级。大多数实现将为其中至少一些数字具有更大的量级。例如

  • 补码实现具有 SCHAR_MIN 等于 −128(以及所有其他 _MIN 值)。
  • 32 位实现将设置 INT_MAX 等于 +2,147,483,647(以及 INT_MINUINT_MAX 相同)。
  • 支持 Unicode 的实现将设置 MB_LEN_MAX 为 4 或更大。
  • 许多 DSP 具有 CHAR_BIT 等于 16 或更大[1][2].
名称 描述 典型值 ANSI 标准最小-
或最大量级值
CHAR_BIT char 中的位数 8 ≥+8
SCHAR_MIN signed char 的最小值 −128 ≤−127
SCHAR_MAX signed char 的最大值 +127 ≥+127
UCHAR_MAX unsigned char 的最大值 +255 ≥+255
CHAR_MIN char 的最小值 −128 ≤−127
(如果 char 表示为
signed char;否则 ≤0)
CHAR_MAX char 的最大值 +127 ≥+127
(如果 char 表示为
signed char;否则 ≥+255)
MB_LEN_MAX 所有语言环境中字符的最大多字节长度 变化,通常至少为 4 ≥+1
SHRT_MIN short int 的最小值 −32,768 ≤−32,767
SHRT_MAX short int 的最大值 +32,767 ≥+32,767
USHRT_MAX unsigned short int 的最大值 +65,535 ≥+65,535
INT_MIN int 的最小值 16 位编译器 -32768 或 −2,147,483,648 ≤−32,767
32 位或 64 位编译器 −2,147,483,648
INT_MAX int 的最大值 16 位编译器 +32,767 或 +2,147,483,647 ≥+32,767
32 位或 64 位编译器 +2,147,483,647
UINT_MAX unsigned int 的最大值 16 位编译器 +65,535 或 +4,294,967,295 ≥+65,535
32 位或 64 位编译器 +4,294,967,295
LONG_MIN long int 的最小值 16 位或 32 位编译器 −2,147,483,648 ≤−2,147,483,647
64 位编译器 −2,147,483,648 或 −9,223,372,036,854,775,808
LONG_MAX long int 的最大值 16 位或 32 位编译器 +2,147,483,647 ≥+2,147,483,647
64 位编译器 +2,147,483,647 或 +9,223,372,036,854,775,807
ULONG_MAX unsigned long int 的最大值 16 位或 32 位编译器 +4,294,967,295 ≥+4,294,967,295
64 位编译器 +4,294,967,295 或 +18,446,744,073,709,551,615
LLONG_MIN long long int 的最小值 −9,223,372,036,854,775,808 ≤−9,223,372,036,854,775,807
LLONG_MAX long long int 的最大值 +9,223,372,036,854,775,807 ≥+9,223,372,036,854,775,807
ULLONG_MAX unsigned long long int 的最大值 +18,446,744,073,709,551,615 ≥+18,446,744,073,709,551,615
[编辑 | 编辑源代码]
华夏公益教科书