c언어 - 구조체 비트 필드

구조체의 멤버를 선언할 때 : 뒤에 비트 수를 지정하면 맴버를 비트단위로 저장할 수 있음.

비트필드의 자료형은 정수 자료형만 사용 가능.

1
2
3
struct 구조체이름 {
    정수자료형 멤버이름 : 비트수;
};
cs
비트 필드와 공용체 함께 사용 가능.

1
2
3
4
5
6
7
8
9
10
11
struct Flags {
    union {    // 익명 공용체
        struct {    // 익명 구조체
            unsigned short a : 3;    // a는 3비트 크기
            unsigned short b : 2;    // b는 2비트 크기
            unsigned short c : 7;    // c는 7비트 크기
            unsigned short d : 4;    // d는 4비트 크기
        };                           // 합계 16비트
        unsigned short e;    // 2바이트(16비트)
    };
};
cs
공부 : c언어 코딩도장

댓글