1
0
wiki/dev/C/lib 标准库/limits.h.md

46 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# limits.h
`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 的数。
```c
#if INT_MAX < 100000
#error int type is too small
#endif
```
上面示例中,如果 int 类型太小,预处理器会显示一条出错消息。
可以使用`limit.h`里面的宏,为类型别名选择正确的底层类型。
```c
#if INT_MAX >= 100000
typedef int Quantity;
#else
typedef long int Quantity;
#endif
```
上面示例中,如果整数类型的最大值(`INT_MAX`不小于100000那么类型别名`Quantity`指向`int`,否则就指向`long int`。