공용체 질문
하련솔
2023.04.01
질문 제목 : 공용체 에서. 우선 소스를 보시죠.
질문 내용 :
#include stdio.h
union data {
unsigned int dword;
unsigned char byte[4];
};
int main(void)
{
union data d1;
int i;
printf(data 공용체의 크기 : %d\n, sizeof(union data));
d1.dword = 0x12345678;
printf(d1.dowrd = %08x \n,d1.dword);
for(i = 0; i 4 ; i++)
printf(d1.byte[%d] = %02x \n, i, d1.byte[i]);
return 0;
}
공용체 예제가 이렇게 나와있습니다.
그런데 제가 물어볼 것은 d1.dword 에 0x로 왜 해주나요?
그냥 12345678 하면 안되던데 (출력부분 변환문자를 %d로 해줬음에도 불구하고)
알고 싶습니다.제가 못해서 죄송합니다.
-
초코우유
그냥 12345678을 하면 이게 16진수로 BC614E가 됩니다.
이렇게 하면 하나면 출력해서 맞게 되었는지 확인하기가 어렵기 때문입니다.
0x12345678로 해야
78 56 34 12가 출력되는 것으로 확인이 쉽게 가능합니다.