|
구조체 선언부 앞 뒤로 #pragma pack(1) 과 #pragma pack() 을 넣으세요.
#pragma pack(1)
class .....
{
};
#pragma pack()
32bit 컴퓨터에서는 기본적으로 4byte단위로 메모리가 할당됩니다.
예를 들어 5byte짜리라면 프로세서 입장에서는 8byte짜리를 취급하는거랑
차이가 없죠. 오히려 크기를 맞추기 위해 오버헤드가 걸릴지도 모르는
일이죠.
따라서 실제 5byte만 먹게 스트럭쳐나 클래스를 잡아도 기본적으로는
8byte로 크기가 나오는겁니다.
이걸 강제로 1byte단위로 맞춰주는거라고 생각하시면 됩니다.
sulzip 님이 쓰신 글 :
: 다른 건 (ex. int,char) sizeof하면 제대로 크기가 나오는데
: 구조체 size는 정확한 값이 안나옵니다...
: 그래서 Project-Option-Data Alignment도 바꾸워 봤는데
: 잘 안돼네요...
: 도움 부탁드립니다..
:
: 모두들 수고하세요...
|