C核心技术手册(十五)

具有精确宽度的整数类型

  整数类型的宽度定义为表示此整型值所使用的位的个数,包括符号位,典型的宽度有8163264位。例如,int类型的宽度至少为16位。

  C99中,头文件stdint.h定义了整数类型的宽度,这些类型列举在Table 2-5.中,其中以u开头的表示unsigned.下表中不是C99要求必须提供的使用”optional”标记。

                Table 2-5. Integer types with defined width

类型

含义

执行

intN_t

uintN_t

宽度为N位的整型

optional

Int_leastN_t

Uint_leastN_t

宽度至少为N位的整形

要求N=8163264

Int_fastN_t

uint_fastN_t

宽度至少为N位的fast类型

要求N=8163264

Intmax_t

Uintmax_t

最大的宽度

要求

Intptr_t

Uintptr_t

宽度可以存储一个指针的整型

optional

 

例如,int_least64_tuint_least64_t都是宽度至少为64位的整型,如果可选的有符号类型(不带前缀u)被定义,相应地,也要求无符号类型(带有前缀u)也要求被定义,反之亦然。下面的例子中定义和初始化了一个元素为int_fast32_t类型的数据。

Table 2-4中列举的类型通常为已存在标准库的同义词,例如,一个C编译器在stdint.h中有下面语句:

  typedef signed char    int_fast8_t;

这个声明将int_fast8_t定义为等价的signed char.此外,有的实现也可能定义如int24_tuint_least128_t等扩展类型。

  有符号类型intN_t具有一个特性,它们必须使用2的补码来表示,所以,它们的最小值为-2,最大值为2N-1 – 1

  Stdint.h中定义的类型的范围也很好获得,这个文件中也定义了获取最大值和最小值的宏,宏的名子使用大写字母,将类型中的_t命使用_MAX_MIN替代,例如,下例中使用最小值初始化了变量i64

  int_least64_t i64 = INT_LEAST64_MIN;

 头文件inttypes.h包含了stdint.h,它提供了其他的一些特性,例如扩展整型在函数printf()scanf()中的使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值