바이트정렬
-
구조체 및 structure 바이트 정렬 방법Work 2008. 3. 23. 10:46
이것때문에 일주일은 고생한 것 같다 ㅠㅠ [ 설명 ] 구조체및 공용체의 바이트 정렬을 조정한다. 디폴트로 컴파일러는 4 바이트 혹은 8바이트로 구조체 크기를 정렬한다. VC++는 디폴 트가 8바이트로, 즉 이 것으로 정의 하지 않으면 지정된 구조체가 5바이트라면 실제 메모리 상에서는 8바이트의 공간을 잡는다는 말이다. 가장 문제가 되는 것은 데이터 이동의 기본단위가 1바이트이기 때문에 프로그램 내부적으로 데이터를 이동하기 위해 항상 4번의 코드 실행이 이루어 지는 것과 같습니다. 즉, 비 효율적이라는 얘기입니다. [ 예제 ] #pragma pack(push,1) // 패킷 정의 typedef struct { DWORD dwRiff; DWORD dwSize; DWORD dwWave; }FILEHEADER;..