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
[43914] Re:초보적인 union 질문입니다.
김태선 [jsdkts] 943 읽음    2006-03-04 10:04
유니온에 대해 정확히 개념을 잡으시기 바랍니다.
너무나 당연히 5가 찍히는게 맞습니다.
왜냐하면 AddNo 나 NoSlot 나 둘이 같은 번지를 공유하고 있기 때문이다.
즉 그것이 유니온의 특징입니다.
원하는 결과를 얻으려면 union 을 struct 로 바꾸면 됩니다.

그럼.


김성준 님이 쓰신 글 :
: union UNODE
: {
:     unsigned int Position;
:     unsigned char AddrNo;
:     unsigned char NoSlot;
: }UNode[5355];
:
: 이렇게 유니언을 배열로 선언을 하고
:
: void __fastcall TForm1::AddNode(char chNoChassis, char chNoSlot)
: {
:     UNode[0].AddrNo = chNoChassis;
:     UNode[0].NoSlot = chNoSlot;
:     ShowMessage(IntToStr(UNode[0].AddrNo));
: }
:
: 이런 함수를 만들고
:
: AddNode(0, 5); 라고 하면
:
: 0이 출력이 되야 할거 같은데
: 자꾸 5가 출력이 되네요.. 뭐가 문제인지;;
: 터보씨책 보면서 짜려니 좀 힘듭니다 ^^;;

+ -

관련 글 리스트
43913 초보적인 union 질문입니다. 김성준 890 2006/03/04
43914     Re:초보적인 union 질문입니다. 김태선 943 2006/03/04
43915         Re:예 감사합니다. 김성준 904 2006/03/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.