首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C "int“的大小是2字节还是4字节?

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

Stack Overflow用户
提问于 2012-07-12 02:11:57
回答 5查看 646.2K关注 0票数 198

C中的Integer变量占用2个字节还是4个字节?它依赖的因素是什么?

大多数教科书都说整数变量占用2个字节。但是,当我运行一个程序,打印一个整数数组的连续地址时,它显示了4的差值。

EN

回答 5

Stack Overflow用户

发布于 2012-07-12 02:15:00

没有明确的答案。这取决于平台。它是由实现定义的。它可以是2、4或其他值。

int背后的想法是,它应该与给定平台上的自然“字”大小相匹配: 16位平台上为16位,32位平台上为32位,64位平台上为64位。但是,出于向后兼容的目的,一些编译器更喜欢坚持使用32位int,即使是在64位平台上也是如此。

不过,2字节int的时代已经一去不复返了(16位平台?)除非您使用的是具有16位字长的嵌入式平台。你的课本可能已经很旧了。

票数 34
EN

Stack Overflow用户

发布于 2014-03-14 20:14:14

这个问题的答案取决于您使用的平台。

但与平台无关,您可以可靠地假设以下类型:

代码语言:javascript
运行
复制
 [8-bit] signed char: -127 to 127
 [8-bit] unsigned char: 0 to 255
 [16-bit]signed short: -32767 to 32767
 [16-bit]unsigned short: 0 to 65535
 [32-bit]signed long: -2147483647 to 2147483647
 [32-bit]unsigned long: 0 to 4294967295
 [64-bit]signed long long: -9223372036854775807 to 9223372036854775807
 [64-bit]unsigned long long: 0 to 18446744073709551615
票数 20
EN

Stack Overflow用户

发布于 2012-07-12 02:15:02

这取决于实现,但通常取决于x86和其他流行的体系结构,如ARM int需要4个字节。您总是可以在编译时使用sizeof(int)或您想要检查的任何其他类型进行检查。

如果要确保使用特定大小的类型,请使用<stdint.h>中的类型

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11438794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档