#include <stdio.h>
union TFontStyle
{
struct
{
int useItalic: 1;
int useBold: 1;
int isFixed: 1;
int reserved: 1;
int grayLevel: 4;
int color: 24;
};
int data;
};
int main()
{
// TFontStyle의 크기를 확인해 본다.
// union이니 보통 4bytes가 나올 것이다.
printf("sizeof(TFontStyle) = %d\n", sizeof(TFontStyle));
{
TFontStyle fontStyle;
// 전체 bit field를 초기화
fontStyle.data = 0;
// 위에서 초기화를 했으니 아마도 0이겠지.
printf("useItalic = %d\n", fontStyle.useItalic);
// 이태릭을 사용하는 것으로 설정.
fontStyle.useItalic = 1;
// 위로 설정한 대로 그대로 비교를 하자.
// 그 결과는?
if (fontStyle.useItalic == 1)
printf("That's the way!!\n");
else
printf("why??!!\n");
}
return 0;
}
sizeof(TFontStyle) = 4
useItalic = 0
why|! <-- 왜 이것이 출력되지?
Posted by 슴갈
