TłoJak piszesz (przenośnie) odwrotną kolejność bajtów sieciowych?
Przy projektowaniu binarnych formatów plików, to zazwyczaj zaleca się pisać liczby całkowite w sieciowej kolejności bajtów. W tym celu dostępne są makra, takie jak htonhl()
. Ale w przypadku formatu takiego jak WAV używany jest mały format endianów.
Pytanie
Jak przenośnie napisać małe wartości endian, niezależnie od tego, czy procesor pracuje na Twój kod jest duży endian lub little endian architekturę? (Pomysły: Można standardowe makra ntohl()
i htonl()
być używane „w drugą stronę” w jakiś sposób powinno kod tylko Runtime testu, jeśli jest uruchomiony na małym lub dużym endian CPU i wybrać odpowiednią ścieżkę kodu?)
Tak pytanie nie dotyczy formatów plików, format plików był tylko przykładem. Może to być wszelkiego rodzaju serializacja, w której wymagany jest mały endian "na drucie", taki jak protokół sieciowy (heretycki).
Masz trzy pytania tam, ale tylko dwa wyróżniać. –
@ user2096041, przeprojektowany, czy jest jaśniejszy? –
Aby znaleźć endianness systemu hosta, można kliknąć ten link: http://stackoverflow.com/questions/1001307/detecting-endianness-programmatically-in-ac-programu –