728x90
반응형
구조체의 bit_field란?
구조체의 정수 타입의 멤버 변수를 비트 단위로 쪼개서 사용할 수있도록 하는 방법이다.
Struct 구조체이름{
정수형type 변수명 : 비트수
}
와 같이 사용한다.
(정수형type 은 (unsigned/signed) char, short, int, long 이 있다.)
예를 들어서 bit_field 구조체 안에
unsigned char a : 3;
unsigned char b : 2;
라고 코드가 작성되어 있다면
bit_field 구조체는 char 타입 1바이트(8비트)를 메모리에 할당하고
a가 3비트, b가 2비트를 사용한다.
만약에 사용할 비트 합이 할당할 데이터 타입보다 크다면
(예를들어 비트의 총 합은 10비트인데 unsigned char은 8비트)
할당할 데이터 타입의 크기만큼 더 증가해서 할당하게 된다.
임베디드 시스템의 환경에서는 메모리 사이즈가 부족한 경우가 많은데,
구조체 bit_field를 이용하면 메모리 사이즈를 줄일 수 있어서 잘 사용한다.
728x90
반응형