我正在從網絡接收一個緩衝區,這是一個大端,我在一個小端系統。在我的系統上使用它之前,是否必須將緩衝區反轉?我不確定字節序是否僅顛倒單個類型的字節排序,或者是否也適用於整個緩衝區。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