zoukankan      html  css  js  c++  java
  • C 标准库系列之limits.h

      limits.h 类似于float.h,其定义了一些列类型的值的范围、限制值,也就是说该类型的值不可以大于该上界或者小于该类型值的下界;

      glibc中宏定义了一下的值:
        # define MB_LEN_MAX 16 // 多字节字符的最大字节(byte)数为16位
        # define CHAR_BIT 8 // 1个字符所占的字节位数8位
        # define SCHAR_MIN (-128) // 一个有符号字符的最小值
        # define SCHAR_MAX 127 // 一个有符号字符的最大值
        # define UCHAR_MAX 255 // 一个无符号字符的最大值
        # define SHRT_MIN (-32768) // 有符号短整型最小值
        # define SHRT_MAX 32767 // 有符号短整型最大值
        # define USHRT_MAX 65535 // 无符号短整型最大值
        # define INT_MIN (-INT_MAX-1) // 有符号整形最小值
        # define INT_MAX 2147483647 // 有符号整形最大值
        # define UINT_MAX 4294967295U // 无符号整形最大值
        # define LONG_MIN (-LONG_MAX - 1) // 依赖于平台是否支持64位;
        # define LONG_MAX 9223372036854775807L或者2147483647L // 依赖于平台是否支持64位;
        # define ULONG_MAX 18446744073709551615UL或者4294967295UL // 依赖于平台是否支持64位;
        # define LLONG_MAX 9223372036854775807LL // 有符号长长整形最大值
        # define LLONG_MIN (-LLONG_MAX - 1LL) // 有符号长长整形最小值
        # define ULLONG_MAX 18446744073709551615ULL // 无符号长长整形最大值

      微软中提供也同样的宏,其中的不同之处有:
        #define MB_LEN_MAX 5
        #define LONG_MIN (-2147483647L - 1)
        #define LONG_MAX 2147483647L


      微软还提供了便于使用的宏类型如_I8_MIN、_I16_MIN、_UI32_MAX、_I64_MAX等,此外也提供了128位的支持:
        #define _I128_MIN (-170141183460469231731687303715884105727 - 1)
        #define _I128_MAX 170141183460469231731687303715884105727
        #define _UI128_MAX 0xffffffffffffffffffffffffffffffff

      C语言并未对字节长度明确要求,不过一般要求所占字节长度满足:char(unsigned char) < short int(unsigned short int) < int(unsigned int) <= long int(unsigned long int) < long long int(unsigned long long int)。

  • 相关阅读:
    react 滑动删除组件
    004-Java进制转换
    003-JavaString数据类型
    002-Java数据类型
    001-Java命名规范
    【leetcode】804
    【MySQL】基本语句
    【python】
    hiveSql常见错误记录
    【数据库】-基本特性
  • 原文地址:https://www.cnblogs.com/haomiao/p/6128949.html
Copyright © 2011-2022 走看看