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

46 lines
1.6 KiB
Markdown
Raw Normal View History

2022-03-30 15:37:37 +08:00
# 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`。