为了账号安全,请及时绑定邮箱和手机立即绑定

C“int”的大小是2字节还是4字节?

C“int”的大小是2字节还是4字节?

C
qq_花开花谢_0 2019-08-03 13:03:35
C“int”的大小是2字节还是4字节?C中的整数变量占2字节还是4字节?它所依赖的因素是什么?大多数教科书说整数变量占两个字节。但是,当我运行一个程序,打印一个整数数组的连续地址时,它显示了4的差异。
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这是C中最初可能混淆的点之一,但C标准只指定了最小范围对于保证支持的整数类型。int保证能够容纳-32767到32767,这需要16位。在这种情况下,int,是两个字节。然而,实现可以超越这个最小值,正如您将看到许多现代编译器所做的那样。int32位(这也意味着4个字节相当普遍)。

你的书上说有两个字节的原因很可能是因为它太旧了。有一段时间,这是一种常态。通常,您应该始终使用sizeof运算符如果您需要知道它在您使用的平台上的字节数。

为了解决这个问题,C99添加了新类型,您可以显式地请求一个特定大小的整数,例如int16_tint32_t..在此之前,没有通用的方法来获得特定宽度的整数(尽管大多数平台提供了每个平台的相似类型)。




查看完整回答
反对 回复 2019-08-04
?
长风秋雁

TA贡献1757条经验 获得超7个赞

没有具体的答案。这取决于平台。它是由实现定义的。可以是2,4或其他什么的。

背后的想法int它应该与给定平台上的自然“单词”大小相匹配:16位在16位平台上,32位在32位平台上,64位在64位平台上,你就知道了。然而,出于向后兼容性的考虑,一些编译器更倾向于坚持32位。int即使在64位平台上。

2字节的时间int但是很久没有了(16位平台?)除非您使用的是16位字大小的嵌入式平台。你的课本可能很旧。




查看完整回答
反对 回复 2019-08-04
  • 3 回答
  • 0 关注
  • 410 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信