제가 빌더에서구조체를 하나 선언했는데..
struct a
{
char a;
char b;
short int c;
char d;
} bb;
이런식으로요
근데 위의 것을 예로 든다면 sizeof(a)한다면 값이 5가 나오는 것 맞죠.
32비트에서는 int 가 4바이트니 short int 는 2바이트.
그런데 프로그램을 실행시켜서 디버그해보면 7바이트가 나와요.
그리고 short int를 int로 바꾸어서 하면 9가 나오고요..
이걸 묻는 이유는
저 구조체를 써서 파일에서 데이타를 읽는데요. 바이너리로..
이상하게 int가 들어간 구조체에 파일의 데이타를 읽어오면
int형이 선언된 변수부터 값이 밀려서 저장되요.
물론 빌더에서 컴파일시켰는데..
이거 왜그러죠..
만약 제 질문이 이해가 안가시면 다시 올리겠습니다.
지금 곧바로 쓰는 건데..
그럼.
|