gpt4 book ai didi

c - 字节顺序和整型变量

转载 作者:行者123 更新时间:2023-12-04 11:13:34 24 4
gpt4 key购买 nike

在 c 中,我不太担心字节顺序的概念。假设我在小端机器上声明一个整数(2 字节)为

int a = 1;

它被存储为:

Address   value
1000 1
1001 0

在 big endian 上,它应该存储为反之亦然。现在,如果我执行 &a,那么我应该在两台机器上都获得 1000。

如果这是真的,那么如果我存储 int a=1 那么我应该在 little endian 上得到 a=1 而在 big endian 上得到 2^15。这是正确的吗?

最佳答案

只要您不在平台之间传输数据(或通过汇编代码访问它),数据的表示方式对您来说并不重要。

如果您只使用标准 C - 它对您是隐藏的,您不应该为它烦恼。如果您在未知机器之间传递数据(例如,您有一个客户端和一个服务器应用程序通过某个网络进行通信)- 使用 htonntoh 函数将本地数据转换为网络以及从网络到本地字节顺序,以避免出现问题。

如果直接访问内存,那么不仅是字节序问题,还有打包问题,所以要小心。

关于c - 字节顺序和整型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com