登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

标准库 limits.h

阮一峰   2022-03-20 15:59   收藏 我也要投递项目>>

本文作者:阮一峰
本教程来自网道项目
本教程采用知识共享 署名-相同方式共享 3.0协议

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