저도 자세한 건 잘모르는데요.
저도 전에 그 문제 땜에 좀 헤맸었죠.
align 문제라고들 하데요.
제가 들은 답변으로는 int 가 시작하는 위치가 메모리상의 4의 배수의 위치에 있어야
한다는 군요. 따라서 그렇게 되게 padding 을 하게 되는거구요.
아마도 filed5 담에 padding 으로 2바이트가 들어갔을거예요.
실험해보세요. long 의 위치를 바꾸면 size도 달라집니다.
: 네트웍으로 들어오는 스트림을 처리 하려구 10 바이트 구조체를 선언했습니다.
:
: struct tagPSIP_Table
: {
: unsigned char filed1;
: unsigned short filed2;
: unsgined char filed3;
: unsigned char filed4;
: unsigned char filed5;
: unsigned long filed6;
: };
:
: 이 구조체의 크기를 확인 해보니까 (sizeof()) 12 바이트를 반환 하더군요.
:
: 1 + 2 + 1 + 1 + 1 + 4 = 10 인데
:
: 12를 반환하는 이유와
:
: 10바이트가 되도록 만드는 방법을 알려 주시길 . . .--껌을 씹을 때는 조용히...