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
[17188] Re:[만해] Union에 대해서
개박살.U&I [inutero] 813 읽음    2002-04-04 02:07

안녕하세요? 개박살입니다

: typedef union DataWord__u    {
:     struct {
:             unsigned char Hi;
:             unsigned char Lo;
:         } Nibble;
:           unsigned char Data[2];
:          short int IData;
: }    DataWord_u;
: #pragma pack(pop)
: typedef union DataFWord__u{
:   struct {
:     DataWord_u Hi;
:     DataWord_u Lo;
:     }Word;
:     unsigned char Data[4];
:     int  IData;
: } DataFWord_u;

여기서요 전 union & struct에다가 패키징을 해보심이 어떻습니까?

확실한건 아니지만 아무래도 메모리 정렬문제인거 같아서요 ^^;

: typedef union DataFWord__u{
:   struct {
:     DataWord_u Hi;
:     DataWord_u Lo;
:     }Word;
:     unsigned char Data[4];
:     int  IData;
: } DataFWord_u;

여기서 int 는 unsigned long으로 바꾸셔야 하겠군요~

그럼 한번해보세요~ 의견이었습니다~

만해 님이 쓰신 글 :
: 안녕하세요 만해입니다.
:
: typedef union DataWord__u    {
:     struct {
:             unsigned char Hi;
:             unsigned char Lo;
:         } Nibble;
:           unsigned char Data[2];
:          short int IData;
: }    DataWord_u;
: #pragma pack(pop)
: typedef union DataFWord__u{
:   struct {
:     DataWord_u Hi;
:     DataWord_u Lo;
:     }Word;
:     unsigned char Data[4];
:     int  IData;
: } DataFWord_u;
:
: 이렇게 정의되어 있는 상태에서요
:
: DataFWord_U AWord;
: FWord.Word.Hi.Nibble.Hi = 'a';
: FWord.Word.Hi.Nibble.Lo = 'b';
: FWord.Word.Lo.Nibble.Hi = 'c';
: FWord.Word.Lo.Nibble.Lo = 'd';
:
: 이렇게 입력을 하고 난 후에
:
: FWord.Data를 확인해 보면 'abcd0x40' 이런식으로
:
: 제가 원하는 값이 아닌 쓰레기 값이 있는 경우가 종종 생기는데요
:
: 이게 왜 이런지 모르겠네요
:
: 혹시나 해서
:
: unsigned char 형으로 정의 된걸 싹다 char 형으로 바꿔 보기도 했는데 왜 이러는지 모르곘네요
:
: 고수님들의 도움 바랍니다.

+ -

관련 글 리스트
17180 [만해] Union에 대해서 만해 821 2002/04/03
17188     Re:[만해] Union에 대해서 개박살.U&I 813 2002/04/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.