아래 코드는 소켓에서 정수로 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
반환 할 'void'함수는 무엇입니까? – SingleNegationElimination
저는이 방법으로 캐스트를 사용하지 말 것을 강력히 권합니다. 구현중인 프로토콜에 대한 사양을 확인하고 해당 프로토콜에 따라 4 바이트를 해석하십시오. 캐스팅과 함께 최선을 다해 희망을 품고 'int'를 채우지 마십시오. –