|
#pragma pack(1) 을 사용해 보세여.
어느 한부분만 적용 하려면
#pragma pack(push,1)
typedef struct
{
char im1;
WORD im3[10];
} TEST1;
#pragma pack(pop)
이런 방법도 있다고 합니다.
이즈 님이 쓰신 글 :
: typedef struct
: {
: char im1;
: WORD im3[10];
: } TEST1;
:
: typedef struct
: {
: char im1;
: char im2;
: WORD im3[10];
: } TEST2;
:
: sizeof(TEST1);
: sizeof(TEST2);
:
: 의 결과가 의외네요.. 같습니다..
: 그리고
:
: typedef struct
: {
: char im1;
: WORD im3[10];
: } TEST1;
:
: typedef struct
: {
: char im1;
: DWORD im3[10];
: } TEST2;
:
: sizeof(TEST1);
: sizeof(TEST2);
:
: 의 결과 또한 의외네요.. char im1 에 할당되는 메모리 사이즈가 틀립니다.
:
: 대충 왜그런지 이해가 가지만.. 큰 버그를 프로그램에 심어 놓을뻔 했네요--;;
:
: 약간 복잡하게 메모리를 사용하는 루틴을 구현하다가
:
: 저 스스로를 믿지 못해 라인 단위의 검증을 거치는중에 발견한 사항이네요..
:
: 항상 sizeof 로 size를 구해 쓴다면 문제가 되지 않겠지만
:
: size를 직접 계산해 사용하거나하면 큰일 나겠습니다 휴.. 다행이다..
:
:
: 다른 분들도 이 사항으로 안좋은 기억이 있으신가요?^^
|