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

C/C++ Q/A
[1521] Re:[질문] 구조체와 공유체 연습문제... 밑에 질문한거랑 같은데요... 이것역시 조금만...
오전&오후 [kkhhyy11] 1469 읽음    2002-11-11 11:27
97나오는게 맞습니다..
temp3의 공용체는 4byte크기의 메모리 영역을 가지고 있습니다.
처음에 test1.x = 1로 하셨을때 4byte의 영역에 1이라는값이 들어가겠지요
이 1이라는 값은 temp1, temp2도 같이 공유합니다.
다음에 test1.y.byte0 = 'a'를 넣으셨지여 이게 hexa값으로 0x61입니다.
이값은 이전의 1을 덮어써버리게 됩니다..
다음에 1을 넣으셨는데 이값은 0x01입니다. 1bit만 처리하는거지여(비트필드 구조체)..
따라서 0x61(1byte)이라는 값중에서 1bit값만 변하게 되는거지여..
그런데 뒤에값이 같은 1이라서 그대로 61이 되는거지여.
이해가 되셨는지 모르겠네여..^^;


shivan2k 님이 쓰신 글 :
: #include<stdio.h>
:
: typedef struct w_byte
: {
:     unsigned byte0: 8;
:     unsigned byte1: 8;
:     unsigned byte2: 8;
: } temp1;
:
: typedef struct flag
: {
:     unsigned bit_a: 1;
:     unsigned bit_b: 1;
:     unsigned bit_c: 1;
: } temp2;
:
: typedef union word
: {
:     int x;
:     temp1 y;
:     temp2 z;
: } temp3;
:
: void main()
: {
:     temp3 test1;
:     test1.x=1;
:     test1.y.byte0='a';
:     test1.z.bit_a=1;
:     printf("test1.x       =%d\n",test1.x);
:     printf("test1.y.byte0 =%d\n",test1.y.byte0);
:     printf("test1.bit_a   =%d\n",test1.z.bit_a);
: }
:
: 다 알려달라고 해서 답변이 없는거 같아서요...
: typedef 는 그냥 데이터형 정의 하는것이죠...
: unsigned 은 음수가 않나오게 하는것이고
:
: union 은 공유체로 기억장소를 공유(?) 덮어쓰기같은거(?) 나중값을 기억...(?맞나요?)
:
: temp3 에서 int x; temp1 y; temp2 z; 라고 정했는데 거기 부분이 공유체가 사용된곳이니깐
: test1.x=1
: a 가 아스키코드 10진(?) 이게 97 이죠...???
:
:
: 결과는 97,97,1 이라고 나오는데
:
: test1.x 가 왜 97이 나오죠??? 그럼 아스키 값이 아니라는것같은데 --;...
:
: 조금만 알려주세여

+ -

관련 글 리스트
1516 [질문] 구조체와 공유체 연습문제... 밑에 질문한거랑 같은데요... 이것역시 조금만... shivan2k 1504 2002/11/11
1526     Re: 감사^^... 완벽히 이해하지 못했지만 ... 이해가 되는군요 ^^ 감사~ shivan2k 1290 2002/11/11
1521     Re:[질문] 구조체와 공유체 연습문제... 밑에 질문한거랑 같은데요... 이것역시 조금만... 오전&오후 1469 2002/11/11
1518     Re:[질문] 구조체와 공유체 연습문제... 밑에 질문한거랑 같은데요... 이것역시 조금만... 만해 1561 2002/11/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.