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 的数。
#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
。