본문 바로가기

공부/C언어

29. union 메모리 분할 하기

반응형

union 안에 sturct 를 넣어서 공용체의 메모리를 비트로 분할 하는 방법입니다.

 

union 안에 있는 변수는 모두 union안에 공용으로 메모리가 할당 됩니다.

그걸 struct를 이용하여 비트 단위로 변수를 넣을수 있습니다.

 

#include <stdio.h>

union Test_H
{
	unsigned char value;

	struct
	{
		unsigned char MODE0:1;
		unsigned char MODE1:3;
		unsigned char MODE2:4;

	}S_Test_H;
};

enum mode_num
{
	mode0_1=0,
	mode0_2,
	mode0_3,
	mode0_4
};
#include "head_t.h"

void main(void)
{
	union Test_H iTest_H;


	iTest_H.S_Test_H.MODE0 = mode0_1;
	iTest_H.S_Test_H.MODE1 = mode0_2;
	iTest_H.S_Test_H.MODE2 = mode0_4;


	printf("%x\r\n", iTest_H.S_Test_H.MODE0);
	printf("%x\r\n", iTest_H.S_Test_H.MODE1);
	printf("%x\r\n", iTest_H.S_Test_H.MODE2);

	printf("%x\r\n", iTest_H.value);


}

이렇게 Union 안에서 비트로 분할되서 표시 되는걸 확인 할수 있습니다.

 

반응형

'공부 > C언어' 카테고리의 다른 글

31. 배열을 서브에서 서브로 전달하기  (0) 2022.03.31
30. 조건부 컴파일  (0) 2022.03.30
Visual studio 콘솔 창 유지 하기  (0) 2021.07.13
28. CRC-16 예제  (0) 2020.04.20
27. 구조체 와 함수  (0) 2020.02.04