728x90
반응형
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 안에서 비트로 분할되서 표시 되는걸 확인 할수 있습니다.
728x90
반응형
'공부 > 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 |