1
我正在編寫一個跨平臺的客戶端,並在提取使用的存檔中,它爲每個文件使用IEEE 802.3以太網CRC-32校驗和。我跑對所有像這樣的文件,這個檢查:跨平臺版本的ntohl()? - C++
if(s3d_meta_block.crc != 0x61580AC9)
{
errorLog.writeError("File %i is not a valid file/ or is the directory", i);
}
它結束了失敗的文件中的每一個,我發現它在同類客戶再用ntohl與(0x61580AC9)其他地方寫的。
我在64位Windows上編寫它,理想情況下,它可以在每個平臺上運行,而不必包含「Winsock2.h」和涉及反轉字節序的其他庫。
謝謝!
這def可能可以依賴__WIN32__被定義或不。如果沒有,請包括而不是winsock。 –
dbrank0
2012-01-06 06:36:47
@ dbrank0如果你打算髮佈一個很好的評論發佈一個例子;-) – 2012-01-06 06:38:20
@AdrianCornish'ntohl'只有在字節排序不是大端時纔會交換。對齊與它無關。 – moshbear 2012-01-06 09:44:56