다음과 같이 디스크 액세스를위한 쉬운 함수를 작성하려고합니다. 을 적절하게 결정할 수 없습니다.; 버퍼를 데이터 형식으로 캐스팅하거나 바이트 단위로 비트 단위로 수행합니다. 앞으로는 좀 더 엔디안 친화적 인 제품을 선택할 계획입니다. 그 중 하나가 인 이유가 분명한 이유가 무엇입니까??파일에서 N 바이트를 읽은 다음 정수로 변환하는 방법
#include <pstdint.h>
...
uint16_t file_read_int8(FILE* fp) {
char buffer[2];
fread(buffer,1,2,file);
// this?
return *((uint16_t *)buffer);
// or this?
return buffer[0] | (buffer[1]<<8);
}
어느 것도 올바르게 작동하지 않습니다. char buffer [3] = {0} '... return atoi (buffer)와 같은 것을 사용하십시오. – user3629249