-
C언어의 비트 필드공부/Embedded Recipe 2024. 12. 12. 23:52
비트 필드
구조체 비트 필드를 사용하면 멤버를 비트 단위로 저장할 수 있다.
CPU나 칩의 플래그, 그 외 Low Level 프로그래밍에서 자주 사용한다.
아래와 같은 코드를 실행 해보자.
#include <stdio.h> struct Flags { unsigned int a : 1; // a는 1비트 크기 unsigned int b : 3; // b는 3비트 크기 unsigned int c : 7; }; int main() { struct Flags f1; f1.a = 2; // 0000 0010 f1.b = 31; // 0001 1111 f1.c = 4; // 0000 0010 printf("%u\n", f1.a); //0 printf("%u\n", f1.b); //7 printf("%u\n", f1.c); //4 return 0; }
각각 더 큰 값을 입력해도 선언된 비트필드를 넘어가지 않게 된다.
비트 필드의 메모리 배치
비트 필드의 경우 차례대로 LSB 부터 배치됨
비트 필드와 유니온
struct Flags { union { // 익명 공용체 struct { // 익명 구조체 unsigned short a : 2; unsigned short b : 3; unsigned short c : 7; unsigned short d : 4; }; unsigned short e; // 2바이트(16비트) }; };
'공부 > Embedded Recipe' 카테고리의 다른 글
Clock과 잡다한 것 (0) 2024.12.12