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

C++빌더 Q&A
C++Builder Programming Q&A
[15155] Re:[질문] cbuilder 버그 일까요 ?
길령환 [leonkil] 1275 읽음    2002-01-30 23:23
버그는 아님니다..

C FAQ Q2.12 와 Q2.13을 참조 하세요.
다음과 같이 적혀 있네요 ^^;

"구조체는 필요한 경우 그와 같은 Padding공간을 포함 할수 있습니다.
이는 구조체가 배열로 만들어질때 Alignment 속성이 보존되도록 하기 위한 것입니다.
또 배열로 쓰이지 않을 경우애도 이러한 여분의 Padding이 남아 았을수 있습니다."

라고 적혀 있씁니다.

컴파일러 마다 이런 alignment를 조절할수 있는 옵션이 있다고 합니다.
참고로 빌더는
#pragma alignment를 사용할수도 있고...
컴파일 옵션중에 -an(n:1,2,4,8,16) 옵션으로도 할수 있다고 알고 있습니다.

그럼 수고하세요.
=================================================================================
김규겸 님이 쓰신 글 :
: 안녕하세요...
: 김규겸입니다...
:
: 우연히 구조체를 사용하다 보니 이상한 점이 있어 여쭈어 봅니다...
: cbuilder에서 개별 변수의 사이즈와 구조체를 사용시 전체 변수 합의 사이즈가 다릅니다...
: 이 문제는 short int형 사용시만 나타나는 문제인것 같습니다...
:
: 예를 들어
:
: short int 형의 크기는 sizeof(short int) = 2byte 입니다...
: int 형의 크기는 sizeof(int) = 4byte 입니다...
:
: struct test {
:    short int a;
:    int b;
: };
:
: 그러면 sizeof(test) = ?    
: 2 + 4 bype 합인 6byte여야 할텐데 8byte 입니다...
: 구조체 사용시 short int형이 4byte로 잡히는것 같습니다...
:
: 이건 버그 맞겠죠...
:
: 누가 볼랜드에 얘기좀 해주세요...
: 버젼 6에서 해결해 달라구요...
:
: 요것 알아 내느라 며칠 고민했습니다....
:
: 김규겸 드림.
:

+ -

관련 글 리스트
29856         Re:버그 아닙니다. ^^ 마법감자 1015 2002/01/31
15155     Re:[질문] cbuilder 버그 일까요 ? 길령환 1275 2002/01/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.