고흐의 연구실/C언어와 C++

[C언어] 구조체 비트 필드

전고흐 2020. 8. 13. 03:29
728x90

 

ㅇ비트필드의 구조

struct 구조체이름 {
     정수자료형 멤버이름 : 비트수;
};

 * 실수 자료형은 비트 필드로 사용할 수 없다.

ㅇexample

#include <stdio.h>

struct Flags {
    unsigned int a : 1; // a는 1비트 크기
    unsigned int b : 3; // b는 3비트 크기
    unsigned int c : 7; // c는 7비트 크기
};

int main()
{
    struct Flags f1; // 구조체 변수 선언

    f1.a = 1; // 1: 0000 0001, 비트 1개
    f1.b = 15; // 15: 0000 1111, 비트 4개
    f1.c = 255; // 255: 1111 1111, 비트 8개

    printf("%u\n", f1.a); // 1: 1, 비트 1개만 저장됨
    printf("%u\n", f1.b); // 7: 111, 비트 3개만 저장됨
    printf("%u\n", f1.c); // 127: 111 1111, 비트 7개만 저장됨

    return 0;
}

 

 

 

 

 

728x90

'고흐의 연구실 > C언어와 C++' 카테고리의 다른 글

[C언어] 파일 입출력, 복사 등등..  (0) 2020.08.30
[C언어] 열거형 enum  (0) 2020.08.13
[C언어] 구조체 응용  (0) 2020.08.10
[C언어] 공용체란? Union?  (0) 2020.08.10
[C언어] size_t 자료형이란?  (0) 2020.08.10