1
我想比較兩個ipv6地址但是想要創建代碼是便攜式。我知道ipv6地址是以網絡字節順序(big endian)存儲的,所以在big endian CPU上,我可以簡單地在兩個in6_addr結構中使用memcmp。但是,在小端機器上做同樣事情的最簡單方法是什麼?如何比較兩個ipv6地址在一個小端機在C
[編輯]當我想比較兩個地址我想弄清楚地址是否小於,等於或大於另一個。我認爲memcmp會依賴於它在內存中的位掃描順序。
如果兩個地址都是網絡字節順序,你可以用'memcmp()'它們。 – Havenard
爲什麼你認爲'memcmp()'不能在小端機器上工作? –
'memcmp()'在這種情況下仍應該有所幫助,主要是因爲它的網絡字節順序,它使每個字節的字節比較完美。如果指定的第一個地址在另一個之前,則memcmp()將返回<<0;如果它們相同,則返回'0';如果它們相對於另一個,則返回'> 0。 – Havenard