下面的代碼從一個套接字讀取4個字節到一個整數。我可以看到字節是(十進制)130 0 0 0.我懷疑下面的代碼將返回版本130,但我不知道爲什麼。這會返回130嗎?我試圖在Java中複製它,但我是一個非常大的負數(更多我期望的)。我如何解釋下面的僞/ C代碼?將4個字節的字節轉換爲一個int
#include <socket.h>
void readVersion(char *buf, int iCount) {
recv(hSocket, buf, iCount, MSG_WAITALL);
}
int m_iVersion;
readVersion((char *) &m_iVersion, sizeof (m_iVersion))
count << m_iVersion;
我認爲你真正的問題是關於_ [endianness](http://en.wikipedia.org/wiki/Endianness)_。 – ildjarn 2012-04-01 18:13:13
什麼是應該返回的「void」函數? – SingleNegationElimination 2012-04-01 18:13:47
我強烈建議不要使用這種方式施放。檢查你正在執行的協議的規範,並根據該協議解釋四個字節。不要只是在演員陣容中充當一個'int',並希望最好。 – 2012-04-01 19:14:51