C语言中基本类型char、short、int、long等类型的取值范围

   在C语言中,有时候会想知道这些基本类型的取值范围。用逻辑位操作的方法是可以,比如把整型变量的所有位都赋值1,然后把最高位赋值为0,就可以得到整型的最大值了。

        其实,还有一个更简单的方法获取这些基本类型的取值范围。那就是使用系统头文件limits.h。这个头文件用宏定义了这些基本类型的最大和最小值。但没有为double类型定义。下面贴出这些宏的定义。


[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /* Number of bits in a `char'.  */  
  2. #  define CHAR_BIT  8  
  3.   
  4. /* Minimum and maximum values a `signed char' can hold.  */  
  5. #  define SCHAR_MIN (-128)  
  6. #  define SCHAR_MAX 127  
  7.   
  8. /* Maximum value an `unsigned char' can hold.  (Minimum is 0.)  */  
  9. #  define UCHAR_MAX 255  
  10.   
  11. /* Minimum and maximum values a `char' can hold.  */  
  12. #  ifdef __CHAR_UNSIGNED__  
  13. #   define CHAR_MIN 0  
  14. #   define CHAR_MAX UCHAR_MAX  
  15. #  else  
  16. #   define CHAR_MIN SCHAR_MIN  
  17. #   define CHAR_MAX SCHAR_MAX  
  18. #  endif  
  19.   
  20. /* Minimum and maximum values a `signed short int' can hold.  */  
  21. #  define SHRT_MIN  (-32768)  
  22. #  define SHRT_MAX  32767  
  23.   
  24. /* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */  
  25. #  define USHRT_MAX 65535  
  26.   
  27. /* Minimum and maximum values a `signed int' can hold.  */  
  28. #  define INT_MIN   (-INT_MAX - 1)  
  29. #  define INT_MAX   2147483647  
  30.   
  31. /* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */  
  32. #  define UINT_MAX  4294967295U  
  33.   
  34. /* Minimum and maximum values a `signed long int' can hold.  */  
  35. #  if __WORDSIZE == 64  
  36. #   define LONG_MAX 9223372036854775807L  
  37. #  else  
  38. #   define LONG_MAX 2147483647L  
  39. #  endif  
  40. #  define LONG_MIN  (-LONG_MAX - 1L)  
  41.   
  42. /* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */  
  43. #  if __WORDSIZE == 64  
  44. #   define ULONG_MAX    18446744073709551615UL  
  45. #  else  
  46. #   define ULONG_MAX    4294967295UL  
  47. #  endif  
  48.   
  49. #  ifdef __USE_ISOC99  
  50.   
  51. /* Minimum and maximum values a `signed long long int' can hold.  */  
  52. #   define LLONG_MAX    9223372036854775807LL  
  53. #   define LLONG_MIN    (-LLONG_MAX - 1LL)  
  54.   
  55. /* Maximum value an `unsigned long long int' can hold.  (Minimum is 0.)  */  
  56. #   define ULLONG_MAX   18446744073709551615ULL  
  57.   
  58. #  endif /* ISO C99 */  


        下面的图片能看得更清楚一点:

        
short 65535

int 10^10

long 10^10

long long 10^20

        参考:维基百科

        维基百科还是有比较全的C语言标准库列表,可以总览一下各个头文件里面C语言的函数有哪些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值