1
0
wiki/docs/开发/C/lib 标准库/limits.h.md

1.6 KiB
Raw Blame History

limits.h

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

  • CHAR_BIT:每个字符包含的二进制位数。
  • SCHAR_MINsigned char 类型的最小值。
  • SCHAR_MAXsigned char 类型的最大值。
  • UCHAR_MAXunsiged char 类型的最大值。
  • CHAR_MINchar 类型的最小值。
  • CHAR_MAXchar 类型的最大值。
  • MB_LEN_MAX:多字节字符最多包含的字节数。
  • SHRT_MINshort int 类型的最小值。
  • SHRT_MAXshort int 类型的最大值。
  • USHRT_MAXunsigned short int 类型的最大值。
  • INT_MINint 类型的最小值。
  • INT_MAXint 类型的最大值。
  • UINT_MAXunsigned int 类型的最大值。
  • LONG_MINlong int 类型的最小值。
  • LONG_MAXlong int 类型的最大值。
  • ULONG_MAXunsigned long int 类型的最大值。
  • LLONG_MINlong long int 类型的最小值。
  • LLONG_MAXlong long int 类型的最大值。
  • ULLONG_MAXunsigned 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