Q&A

  • 구조체에서 형의 크기가 다른 이유??.
구조체로 프로그래밍을 하는도중...

구조체의 크기가 잘못나오는 버그가 간혹 있는데 외 그런지 이유를 알고

싶습니다...



예를들어..



sizetest = record

id : integer;

fname : array[0..9] of char;

end;



란 구조체가 있을때...



integer 가 4바이트 밑에 배열이 10 바이트이니...

당연히 sizeof(sizetest) 해서 출력해 보면...



16 이 나옵니다... 14가 정상 아닙니까???..



각각 을 지우로 한 아이템만 있을때 크기를 재보면 재대로 나오는데..

두개가 같이 있으면 싸이즈가 더한값보다 더 크게 나오내요...



델파이5를 사용하고 있는데...

저만 그런건지...델파이에 버그인지...

아니면 제가 모르는 그 무엇인가가 있는 것인지????..

1  COMMENTS
  • Profile
    최용일 2001.09.24 19:56
    안녕하세요. 최용일입니다.



    16이 나오는것이 정상입니다.



    빠른 속도를 내기 위해서 4바이트 옵티마이징하기 때문에 그런것이구요. 지극히 정상입



    니다. packed예약어를 붙이시면 님이 원하시는 대로 나올겁니다...



    ----------------------------------------------------------------------------------



    type

    TA1 = record

    Field: Char;

    end;



    SizeOf(TA1) ===> 4



    type

    TA2 = record

    Field1: Char;

    Field2: Integer;

    Field3: Char;

    end;



    SizeOf(TA2) ===> 12



    type

    TA3 = record

    Field1: Char;

    Field2: Char;

    Field3: Integer;

    end;



    SizeOf(TB3) ===> 8



    ----------------------------------------------------------------------------------



    type

    TB1 = packed record

    Field: Char;

    end;



    SizeOf(TB1) ===> 1



    type

    TB2 = packed record

    Field1: Char;

    Field2: Integer;

    Field3: Char;

    end;



    SizeOf(TB2) ===> 6



    type

    TB3 = packed record

    Field1: Char;

    Field2: Char;

    Field3: Integer;

    end;



    SizeOf(TB3) ===> 6



    ^^ 항상 즐코하세요...



    이현신 wrote:

    > 구조체로 프로그래밍을 하는도중...

    > 구조체의 크기가 잘못나오는 버그가 간혹 있는데 외 그런지 이유를 알고

    > 싶습니다...

    >

    > 예를들어..

    >

    > sizetest = record

    > id : integer;

    > fname : array[0..9] of char;

    > end;

    >

    > 란 구조체가 있을때...

    >

    > integer 가 4바이트 밑에 배열이 10 바이트이니...

    > 당연히 sizeof(sizetest) 해서 출력해 보면...

    >

    > 16 이 나옵니다... 14가 정상 아닙니까???..

    >

    > 각각 을 지우로 한 아이템만 있을때 크기를 재보면 재대로 나오는데..

    > 두개가 같이 있으면 싸이즈가 더한값보다 더 크게 나오내요...

    >

    > 델파이5를 사용하고 있는데...

    > 저만 그런건지...델파이에 버그인지...

    > 아니면 제가 모르는 그 무엇인가가 있는 것인지????..

    • 이경문
      2001.09.24 19:39
      국제 피치음 = 피아노의 A음(피아노의 정중앙에 있는 A건반의 진동수) : 440Hz a := 440 * Power(2, 0 ...
    • 깔쌈보이
      2001.09.24 19:54
      안녕하세요? 님의 말씀... 정말 저에겐 보석보다 값진 것이었습니다. 아래 도지성님과 함께... 항상...
    • 이경문
      2001.09.24 20:00
      헉, ShowMessage를 100번이나... enter치다가 시간 다 가겠네요. ^^ 깔쌈보이 wrote: > 안녕하세요? ...
    • 깔쌈보이
      2001.09.24 22:05
      ^^ 제가 100번 맞게 하나 확인해보시라구요... ^^ 저.. 게을러서 한번씩 건너 뛸때도 있거든요 ^^ ...
    • 도지성
      2001.09.24 19:21
      왜 1옥타브부터 하시려는지 모르겠지만... 일단 음의 기준은 '4옥타브의 라'인 A4가 기준입니다. A4...
    • 깔쌈보이
      2001.09.24 19:47
      안녕하십니까? 먼저 감사의 말씀을 드리고 싶습니다. for i:= 0 to 100 begin MessageBox(handl...
    • 초보
    • 2001.09.24 02:01
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 스파토이
      2001.09.24 18:58
      키설정이 잘못 되었을것 같습니다. 소스를 보내주시면, 무료로 고쳐 드리죠 ^^* TUpdateSQL의 키 설...
    • 지락...
      2001.09.24 03:47
      초보 wrote: > 파라독스 테이블에 UpdateSql을 사용해서 데이타를 저장하는데 > 처음 저장은 이상없이 되...
    • 초보
      2001.09.27 23:06
      Query 를 Close 안하고 Error 를 없앨 수 있는 방법을 찾고 있어요. 그런 방법은 없나요 ? 지락... wr...
    • 꼴통
    • 2001.09.24 00:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 사이비쥐<;●●~
      2001.09.24 01:34
      꼴통 wrote: > 안녕하세여 꼴통입니다. > 폼이 Show될때 Panel컴포넌트를 코딩으로 생성하는 방법을 알고...
    • 용이
    • 2001.09.23 23:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김편용
      2001.09.24 18:15
      용이 wrote: > 머가 잘못된건지 좀 봐주세요. 부탁드립니다. > 그냥 값을 받아서 입력하는건데...안돼네...
    • dskang
    • 2001.09.23 10:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 서성호
      2001.09.24 10:09
      dskang wrote: > 나그네 님 key:=#0; 의미가 무엇을 뜻하는지 알고 싶습니다. > 부탁 드립니다. > ...
    • fdaiu
      2001.09.23 11:01
      dskang wrote: > 나그네 님 key:=#0; 의미가 무엇을 뜻하는지 알고 싶습니다. > 부탁 드립니다. > #...
    • 이석민
      2001.09.23 13:19
      이석민 wrote: > > 나모 웹에디터와 똑같은 MDI Tab을 구현하고자 하는데 > 아무리 머리를 굴려봐도 뾰...
    • 이경문
      2001.09.24 00:19
      C++ 코드인데 참조가 되는지 모르겠네여... HINSTANCE hInst = ::LoadLibrary((LPCTSTR)szDesFile); if...
    • 해결맨
      2001.09.24 19:50
      procedure TForm1.Button2Click(Sender: TObject); var jpeg1 : TjpegImage; jpeg2 : TjpegImage; ...
    • ET
    • 2001.09.23 02:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조건일
      2001.09.23 12:18
      우선 My SQL을 디비로서 봐주시는 델피언이 있어서 반갑습니다... 개인적으로 리눅서&델피언이라 생각하며...
    • 사이비쥐<;●●~
      2001.09.23 21:09
      델완전초보 wrote: > 학원 프로그램을 공부하는데요 종강일자와 개강일자를 두개의 datetimepicker을 사용...
    • 이현신
    • 2001.09.23 01:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.09.24 19:56
      안녕하세요. 최용일입니다. 16이 나오는것이 정상입니다. 빠른 속도를 내기 위해서 4바이트 옵티마이...
    • 나그네
      2001.09.23 02:00
      > string grid에서 입력이 이루어지게 하려면 어떤 속성을 설정해야 하는지? Options->goEditing 를 True ...
    • irookie
    • 2001.09.23 00:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 바람개비
      2001.09.23 01:55
      > 작성자 > 전자우편 > 제목 움... 규칙이 있네요. =,> 이걸 기준으로... 두번째 레코드를 기준으로.....
    • 다소
    • 2001.09.22 22:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 사이비쥐<;●●~
      2001.09.23 21:11
      다소 wrote: > TDatabase컴포넌트를 올리고 따불클릭해서 db명 username, password 적어주고 > Login Pro...
    • 아미
    • 2001.09.22 22:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • kakarous
      2001.09.22 22:16
      아미 wrote: > 탭키를 누르면 다음 컴포넌트로 포커스가 이동하잖아요.. > 이 기능을 왼쪽, 오른쪽 커서...
    • 바보
    • 2001.09.22 19:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • neps
      2001.09.22 20:19
      바보 wrote: > 고수님들 파라미터가 무엇인가요? > 파라미터의 의미좀 내려주세요 > 그리고 어디에 쓰는...
    • arisam
    • 2001.09.22 19:52
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 예삐
    • 2001.09.22 19:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 마그넷
      2001.09.22 21:46
      앗 디폴트 값에 대해서 물으셨네여..ㅡㅡ 그건 데이터베이스 설계시에...디폴트를 걸으셔야져..DBGrid ...
    • 마그넷
      2001.09.22 21:44
      글쎄여... 님이 말씀하신대루...스트링 그리드야..당연히 혼자 노는 애니까 셀에다가 때려 넣음 들어가지...