gpt4 book ai didi

c - 字节顺序是否反转数组?

转载 作者:行者123 更新时间:2023-12-01 16:18:42 26 4
gpt4 key购买 nike

我正在从网络接收缓冲区,它是大端,我在小端系统上。在我的系统上使用它之前是否必须反转缓冲区?我不确定字节序是否只反转单个类型的字节顺序,或者它是否也适用于整个缓冲区。

例如,假设我正在从网络接收一个 unsigned long 缓冲区,并且我在一个小端系统上。代码是这样的:

for(int i=0;i<size;i++)
system_buffer[i]=ntohl(network_buffer[i]);

在我使用 system_buffer 之前,我是否还必须反转它(以便最后一个元素成为第一个元素,反之亦然)?

reverse_buffer(system_buffer);

此外,如果我收到一个 unsigned char 数组,我是否需要完全补偿字节顺序,或者我可以按原样使用缓冲区吗?

谢谢!

最佳答案

Endianess只适用于单个变量,
IE。仅针对每个数组元素值,而不是数组中元素的顺序。

而且 1 字节变量的字节顺序不能颠倒,
所以不需要对它们做任何事情。

关于c - 字节顺序是否反转数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22075152/

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