Q&A

  • Sizeof에 대한 내용
안녕 하세요....Delphi 사용중 이상한점이 있어 문의 드립니다.


record_test = record
        test1: byte;
        test2: Word;
end;

record로 위와 같이 설정후

var
    record_test1 : record_test;

로 잡고

sizeof(record_test1) 하면 return 되는 값이 '4' 더라구요.....
저는 '3' 이 return 될것이라고 생각했는데...

그런데 더 이상한 것은
record_test = record
        test1: byte;
end;
record를 이렇게 할경우 sizeof 에 대한 return은 '1' 이고

record_test = record
        test2: Word;
end;
record를 이렇게 할 경우 sizeof에 대한 return은 '2' 이더라구요?

무엇이 문제인지 설명좀 부탁드립니다.
그리고
record_test = record
        test1: byte;
        test2: Word;
end;
record를 이렇게 잡을경우 이에대한 size를 '3'으로 받을수 있는 방법도 설명해주시면
감사하겠습니다.

그럼 즐거운 하루 보내시길...
2  COMMENTS
  • Profile
    정찬희 2005.04.15 01:56
    델파이에서는 메모리접근속도를 위해 클래스나 구조체등의 필드를 정렬을 합니다...
    정렬을 안하게 하려면

    <!--CodeS-->
    record_test = packed record
            test1: byte;
            test2: Word;
    end;
    <!--CodeE-->

    요렇게 하시면 되요

  • Profile
    권오현 2005.04.15 06:27
    ㅎㅎㅎㅎㅎ
    그렇군요...
    델파이에 대해 아직 공부할 내용이 많네요...
    감사합니다.