일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- vim
- 포인터
- Unity
- 구조체
- c#
- jupyter lab
- 도커
- Algorithm
- c# winform
- C언어 포인터
- 다트 언어
- HTML
- git
- Data Structure
- 깃
- Houdini
- 플러터
- docker
- 유니티
- c# 추상 클래스
- C++
- c언어
- C# delegate
- Python
- gitlab
- dart 언어
- Flutter
- jupyter
- github
- c# 윈폼
Archives
- Today
- Total
목록c++ bit field (1)
nomad-programmer
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ldObZ/btrWfQtAiMt/VzRcxCnqkkzjFue48z5uxk/img.png)
비트 필드(Bit Fields)를 사용하면 구조체의 멤버가 차지하는 메모리 공간을 원하는 데로 조절할 수 있다. 예를 들면 멤버 a는 3비트만, b는 4비트만 차지하게 만드는 것이 가능하다. struct Flags { int a : 3; int b : 4; bool c : 1; }; 비트 필드를 사용하는 멤버는 정수 타입만 가능한데, 멤버의 뒤에 적힌 숫자가 멤버가 차지할 비트 수를 의미하게 된다. 즉 위의 구조체를 사용해서 변수를 정의하게 되면 다음과 같은 메모리 구조를 갖게 된다. 중간에 사용하지 않는 비트를 넣고 싶을 때는 멤버의 이름을 적어주지 않으면 된다. 이렇게 해주면 중간에 5비트는 사용하지 않은 채로 남게 된다. struct Flags { int a : 3; int b : 4; int : ..
Programming/C++
2023. 1. 14. 22:20