이 코드는 무슨 의미인가요?

iadoy의 이미지

VC++에서 사용하는 겁니다.
WORD 는 unsigned short 을 define한 거구요.

struct WORDBITMAP
{
                WORD            Bit00 : 1;    <--- 무슨 의미인지???? :(콜론)1????
		WORD            Bit01 : 1;
		WORD            Bit02 : 1;
		WORD            Bit03 : 1;
		WORD            Bit04 : 1;
		WORD            Bit05 : 1;
		WORD            Bit06 : 1;
		WORD            Bit07 : 1;
		WORD            Bit08 : 1;
		WORD            Bit09 : 1;
		WORD            Bit10 : 1;
		WORD            Bit11 : 1;
		WORD            Bit12 : 1;
		WORD            Bit13 : 1;
		WORD            Bit14 : 1;
		WORD            Bit15 : 1;
};
 
WORDBITMAP	wb;
 
// shortint는  short로 선언된 변수입니다. 
memcpy(&wb, &shortint, sizeof(WORD));
 
char c[16] = {0,};
 
c[0] = wb.Bit00+'0';      <--- '0'을 더하는 이유가 뭐죠???
c[1] = wb.Bit01+'0';
c[2] = wb.Bit02+'0';
c[3] = wb.Bit03+'0';
c[4] = wb.Bit04+'0';
c[5] = wb.Bit05+'0';
c[6] = wb.Bit06+'0';
c[7] = wb.Bit07+'0';
c[8] = wb.Bit08+'0';
c[9] = wb.Bit09+'0';
c[10] = wb.Bit10+'0';
c[11] = wb.Bit11+'0';
c[12] = wb.Bit12+'0';
c[13] = wb.Bit13+'0';
c[14] = wb.Bit14+'0';
c[15] = wb.Bit15+'0';
beta의 이미지

WORD Bit00 : 1; <--- 무슨 의미인지???? :(콜론)에 1????

> 비트 1개를 의미합니다.

c[0] = wb.Bit00+'0'; <--- '0'을 더하는 이유가 뭐죠???

> c[0] 에 '0' 문자를 넣고 싶은겁니다.

고로 2 byte WORD를 16 바이트 문자열로 바꾸거 싶은겁니다.

예를 들어 wb 가 0x0001 이라면
char c[17] = {0,};로 하고 출력해 보면 아마도 "0000000000000001" 이런 문자열이 들어있겠죠?

발 담갔다. 이제 익숙해 지는길만이..

iadoy의 이미지


WORD = unsigned short = 2byte = 16bit
16bit 중에 1bit만 사용한다는 말이군요.

답변 감사합니다.