C语言|《C Primer Plus》|可移植类型

#1. 问题提出

C语言的数据类型较多,但却没有相应的对于存储位数的硬性要求,因此对于移植程序不算友好。故提出三个问题:

  1. 如何在不同系统中确保各种类型的功能相同(位数相同)
  2. 关心速度多于空间
  3. 关心空间多于速度

#2. 如何在不同系统中确保各种类型的功能相同(位数相同)

#2.1. 精确宽度整数类型(exact-width integar type)

例如,在头文件stdint.h中规定int32_t表32位有符号整数类型,在int为32位的系统中,头文件会把int32_t作为int的别名;在int为16位、long为32位的系统中,头文件会把int32_t作为long的别名(写代码的时候是写int)。
但是计算机底层可能不支持。

#2.2. 最小宽度类型(minimum width type)

例如,int_least8_t是可容纳8位有符号整数值的类型中宽度最小的类型的一个别名。如果某系统的最小整数类型是16位,可能不会定义int8_t类型。尽管如此,该系统仍可使用int_least8_t类型,但可能把该类型实现为16位的整数类型。

#3. 关心速度多于空间(最快最小宽度类型(fastst minimum width type))

例如,int_fast8_t被定义为系统中对8位有符号值而言运算最快的整数类型的别名。

#4. 关心空间多于速度

​C99定义了最大的有符号整数类型intmax_t,可储存任何有效的有符号整数值。类似地,unitmax_t表示最大的无符号整数类型。这些类型有可能比longlong和unsigned long类型更大。

#5. 可移植类型的输入输出

包含在inttype.h头文件中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值