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

    xiaoxiao2021-03-25  83

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

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

    [cpp]  view plain  copy   /* Number of bits in a `char'.  */   #  define CHAR_BIT  8      /* Minimum and maximum values a `signed char' can hold.  */   #  define SCHAR_MIN (-128)   #  define SCHAR_MAX 127      /* Maximum value an `unsigned char' can hold.  (Minimum is 0.)  */   #  define UCHAR_MAX 255      /* Minimum and maximum values a `char' can hold.  */   #  ifdef __CHAR_UNSIGNED__   #   define CHAR_MIN 0   #   define CHAR_MAX UCHAR_MAX   #  else   #   define CHAR_MIN SCHAR_MIN   #   define CHAR_MAX SCHAR_MAX   #  endif      /* Minimum and maximum values a `signed short int' can hold.  */   #  define SHRT_MIN  (-32768)   #  define SHRT_MAX  32767      /* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */   #  define USHRT_MAX 65535      /* Minimum and maximum values a `signed int' can hold.  */   #  define INT_MIN   (-INT_MAX - 1)   #  define INT_MAX   2147483647      /* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */   #  define UINT_MAX  4294967295U      /* Minimum and maximum values a `signed long int' can hold.  */   #  if __WORDSIZE == 64   #   define LONG_MAX 9223372036854775807L   #  else   #   define LONG_MAX 2147483647L   #  endif   #  define LONG_MIN  (-LONG_MAX - 1L)      /* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */   #  if __WORDSIZE == 64   #   define ULONG_MAX    18446744073709551615UL   #  else   #   define ULONG_MAX    4294967295UL   #  endif      #  ifdef __USE_ISOC99      /* Minimum and maximum values a `signed long long int' can hold.  */   #   define LLONG_MAX    9223372036854775807LL   #   define LLONG_MIN    (-LLONG_MAX - 1LL)      /* Maximum value an `unsigned long long int' can hold.  (Minimum is 0.)  */   #   define ULLONG_MAX   18446744073709551615ULL      #  endif /* ISO C99 */  

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

             short 65535

    int 10^10

    long 10^10

    long long 10^20

            参考:维基百科

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

    转载请注明原文地址: https://ju.6miu.com/read-24414.html

    最新回复(0)