位置:首页 > 高级语言 > C语言标准库 > <limits.h> - C语言标准库

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

limits.h头中确定各种变量类型的各种属性。在这个头中定义的宏限制的char,int和long类型,如各种变量的值。

这些限制指定一个变量,无法存储任何值超越这些限制,例如一个无符号的字符最多可以存储的最大值为255。

库宏

下面的值是特定于实现定义#define指令,但这些数值可能没有任何比这里给出更低(小)。

描述
CHAR_BIT 8 定义了一个字节中的比特数。
SCHAR_MIN -127 定义最小值签署的字符。
SCHAR_MAX 127 定义最大值签署的字符。
UCHAR_MAX 255 定义unsigned char类型的最大值。
CHAR_MIN 0 char类型定义最小值,它的值将等于SCHAR_MIN如果char表示负值,否则为零。
CHAR_MAX 127 定义char类型的值,它的值将等于SCHAR_MAX的char代表负值,否则UCHAR_MAX,
MB_LEN_MAX 1 定义的最大字节数多字节字符。
SHRT_MIN -32767 定义一个短整型的最小值。
SHRT_MAX +32767 定义一个短整型的最大值。
USHRT_MAX 65535 定义一个无符号的短整型的最大值。
INT_MIN -32767 定义类型为int的最小值。
INT_MAX +32767 定义一个int的最大值。
UINT_MAX 65535 定义一个unsigned int的最大值。
LONG_MIN -2147483647 定义一个长整型的最小值。
LONG_MAX +2147483647 定义一个长整型的最大值。
ULONG_MAX 4294967295 定义一个无符号长整型的最大值。

例子

下面的例子显示的几个常量定义在limit.h文件的用法。

#include <stdio.h>
#include <limits.h>

int main()
{

   printf("The number of bits in a byte %d
", CHAR_BIT);

   printf("The minimum value of SIGNED CHAR = %d
", SCHAR_MIN);
   printf("The maximum value of SIGNED CHAR = %d
", SCHAR_MAX);
   printf("The maximum value of UNSIGNED CHAR = %d
", UCHAR_MAX);

   printf("The minimum value of SHORT INT = %d
", SHRT_MIN);
   printf("The maximum value of SHORT INT = %d
", SHRT_MAX); 

   printf("The minimum value of INT = %d
", INT_MIN);
   printf("The maximum value of INT = %d
", INT_MAX);

   printf("The minimum value of CHAR = %d
", CHAR_MIN);
   printf("The maximum value of CHAR = %d
", CHAR_MAX);

   printf("The minimum value of LONG = %ld
", LONG_MIN);
   printf("The maximum value of LONG = %ld
", LONG_MAX);
  
   return(0);
}

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

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 = -32768
The maximum value of INT = 32767
The minimum value of CHAR = -128
The maximum value of CHAR = 127
The minimum value of LONG = -2147483648
The maximum value of LONG = 2147483647