# limits.h

网道（WangDoc.com），互联网文档计划

`limits.h`提供了用来定义各种整数类型（包括字符类型）取值范围的宏。

- `CHAR_BIT`：每个字符包含的二进制位数。
- `SCHAR_MIN`：signed char 类型的最小值。
- `SCHAR_MAX`：signed char 类型的最大值。
- `UCHAR_MAX`：unsiged char 类型的最大值。
- `CHAR_MIN`：char 类型的最小值。
- `CHAR_MAX`：char 类型的最大值。
- `MB_LEN_MAX`：多字节字符最多包含的字节数。
- `SHRT_MIN`：short int 类型的最小值。
- `SHRT_MAX`：short int 类型的最大值。
- `USHRT_MAX`：unsigned short int 类型的最大值。
- `INT_MIN`：int 类型的最小值。
- `INT_MAX`：int 类型的最大值。
- `UINT_MAX`：unsigned int 类型的最大值。
- `LONG_MIN`：long int 类型的最小值。
- `LONG_MAX`：long int 类型的最大值。
- `ULONG_MAX`：unsigned long int 类型的最大值。
- `LLONG_MIN`：long long int 类型的最小值。
- `LLONG_MAX`：long long int 类型的最大值。
- `ULLONG_MAX`：unsigned long long int 类型的最大值。

下面的示例是使用预处理指令判断，int 类型是否可以用来存储大于 100000 的数。

    #if INT_MAX < 100000
      #error int type is too small
    #endif

上面示例中，如果 int 类型太小，预处理器会显示一条出错消息。

可以使用`limit.h`里面的宏，为类型别名选择正确的底层类型。

    #if INT_MAX >= 100000
      typedef int Quantity;
    #else
      typedef long int Quantity;
    #endif

上面示例中，如果整数类型的最大值（`INT_MAX`）不小于100000，那么类型别名`Quantity`指向`int`，否则就指向`long int`。

本教程采用知识共享 署名-相同方式共享 3.0协议。

分享本文