본문 바로가기

C, C++

비트 구조체

비트 구조체는 비트 멤버를 포함한 구조체인데 비트 멤버는 원래 타입 크기보다 작게 크기를 지정할 수 있는 멤버입니다.

struct {
	(변수 타입) (이름):(비트 크기);
    ...
};

만약 int a:4;인 경우 4비트의 크기를 가진 int 멤버를 생성합니다. 그래서 원래 int와 달리 나타낼 수 있는 숫자 범위가 적습니다.

struct {
	int a:4;//위치 0비트
    int b:12;//위치 4비트
    int c:16;//위치 16비트
};//총 크기 32비트

 

  • 비트 멤버의 타입은 실수가 아닌 단일 숫자 타입만 가능합니다. 즉, 실수나 배열, 구조체 등은 안됩니다.
  • 비트 멤버의 크기를 원래 타입 크기보다 크게 지정할 경우 오류가 납니다. 예를 들어 int의 원래 크기인 32비보다 크게 지정하면 안 됩니다.
  • 비트 멤버의 이름을 지정하지 않을 수도 있는데 이렇게 하면 해당 부분을 비트 크기만큼 건너 뛰는 역할을 합니다.
  • struct { 
    	int a:16;//위치 0비트
        int :16;
        int b;//위치 32비트
    };

    위와 같이 중간의 16비트를 건너뛰어서 b의 위치는 32비트입니다.

'C, C++' 카테고리의 다른 글

공용체  (0) 2019.12.02
구조체 정렬 및 원리  (0) 2019.11.29
구조체  (0) 2019.11.27
main 함수  (0) 2019.11.26
문자, 문자열  (0) 2019.11.26