我正在从网络接收一个缓冲区,这是一个大端,我在一个小端系统。在我的系统上使用它之前,是否必须将缓冲区反转?我不确定字节序是否仅颠倒单个类型的字节排序,或者是否也适用于整个缓冲区。Endianness是否会颠倒数组?
例如,假设我从网络接收到一个unsigned long
s的缓冲区,而且我在一个小端系统上。该代码将是这样的:
for(int i=0;i<size;i++)
system_buffer[i]=ntohl(network_buffer[i]);
以前我用system_buffer,我也有扭转它(所以最后一个元素变为第一个元素,反之亦然)?
reverse_buffer(system_buffer);
此外,如果我接收unsigned char
秒的阵列,还需要一种用于端序补偿在所有,或我可以使用缓冲液作为-是?
谢谢!
阅读此:http://commandcenter.blogspot.co.uk/2012/04/byte-order-fallacy.html – this