Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ 팁&트릭
[42] class size가....에 대한 정답
KooJ [] 16544 읽음    2003-02-03 22:24
조준회님
관심을 가져 주셔서 대단히 고맙습니다.
결국 제가 문제를 제기하고 제가 답하는 형태가 되었네요.
저의 문제는 포인터에 sizeof를 한것은 아니었으며
다음의 문제가 있었습니다.
이는 정우철님이 쓰신 알기쉬운 볼랜드 C++ Builder 3(p965)에서
그 해답을 찾은 것임을 밝힙니다.
C++ Builder의 컴파일러는 Dword Align을 사용하기 때문에
바이트나 워드를 사용할 때 주의를 해야하며
//------------------------------
class IFR_Route {

     double          Lon;
     double          Lat;
     unsigned char   RepType;
     SmallString<11> Name;
};
//-----------------------------
의 경우에는 sizeof(IFR_Route)의 경우 32 Byte가 나옵니다.

그러나
//------------------------------

#pragma pack(1)    // 1은 byte aligned, 2는 word aligned, 4는 dword aligned 임
class IFR_Route {

     double          Lon;
     double          Lat;
     unsigned char   RepType;
     SmallString<11> Name;
};
//-----------------------------
#pragma pack() //dword aligned 임
하게 되면 정확하게 29byte가 되어 자료를 정확하게 읽을 수 있습니다.
구정연휴 잘 지내셨겠지요?
좋은 밤 되시기 바랍니다.

                              KooJ




남병철.레조 [lezo]   2003-02-05 09:18 X
팁란으로 옮겨도 좋을듯 합니다... ^^

+ -

관련 글 리스트
42 class size가....에 대한 정답 KooJ 16544 2003/02/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.