• 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)。

  • 相关阅读:
    第二十三课:运算放大电路正反馈
    第二十二课:运算放大电路
    第二十课:运算放大器抽象
    第二十课:滤波器
    第十九课:阻抗模型(和第十八课重复)
    第十八颗:正弦稳态
    第十七课:二阶系统下,正弦稳态
    第十六课:二阶系统 上
    第十五课:存储与状态
    数据库 分布式事务 是 怎么 实现 的 ?
  • 原文地址:https://www.cnblogs.com/haomiao/p/6128949.html
Copyright © 2020-2023  润新知