首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >32位系统上64 int64_t的字节顺序

32位系统上64 int64_t的字节顺序
EN

Stack Overflow用户
提问于 2013-11-01 14:33:06
回答 3查看 902关注 0票数 5

我想知道,那些比本机字更大的类型,以及那些具有编译器抽象支持的类型,比如32位系统上的int64_t,是否对内存中的字节顺序有任何规范?例如,在小端机器上,我们是否应该假设内存布局是一个完整的64位交换顺序?或者它可以像PDP-11一样自由地成为一个中间端?

c.f.http://en.wikipedia.org/wiki/Endianness#Middle-endian

因为__int64 (MS)或long long (gcc)不是C99中int64_t之前的标准,所以假设这些类型的字节顺序不是很牵强吗?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2013-11-01 17:15:20

为什么标准要在内存中指定字节顺序?在所有情况下,这都是由公司/架构自由决定的。如果您对特定的体系结构感兴趣,只需弹出调试器并观察简单程序的行为。

票数 1
EN

Stack Overflow用户

发布于 2013-11-01 15:04:49

C是一种可移植的语言,因此对整数类型的实际表示没有太多的假设。该标准甚至允许填充散布在值位之间的位!有关更多信息,请参阅6.2.6.2整数类型。

票数 0
EN

Stack Overflow用户

发布于 2013-11-01 17:25:19

我不认为C标准对字节顺序有任何规范。它依赖于实现。在实践中,我假设int64_t的字节顺序遵循体系结构的字节顺序。因此,即使在32位程序中,int64_t在内存中的存储也就像64位程序一样。但是由于寄存器是32位的,所以可能需要两个指令来加载/存储数据。

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

https://stackoverflow.com/questions/19721928

复制
相关文章

相似问题

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