[C, C++] 구조체의 패딩비트와 크기 최적화

구조체 크기의 의문점 구조체 크기는 멤버 전체 크기 합과 다른 경우가 많다. 실제로 그런지 확인해보자. 구조체 크기 테스트 ** 아래 결과는 컴파일러에 따라 다를 수 있다. test1 test1 구조체는 int 하나를 포함하므로 4바이트가 예상되며 실제 결과도 그와 같다. test2 test2 구조체는 char 하나를 포함하므로 1바이트가 예상되며 실제 결과도 그와 같다. test3 test3 구조체는 int 하나와 … Read more

[C, C++] 구조체 비트필드로 메모리 용량 확보

필요성 ON/OFF 스위치와 같이 0과 1의 값만 가지는 변수는 C99부터 지원하는 bool 자료형을 사용할 수 있다. 그런데 ON/OFF는 1비트면 충분하지만 bool을 사용하여 1바이트(8비트)나 소모한다. 이때 구조체의 비트필드를 활용하면 1비트만으로 구현이 가능하다. 사용 예 임베디드 제품을 개발하고 있지만 메모리 최적화를 위해서 비트필드를 사용한적은 없다. 그러나 통신을 위해서 사용하고있다. 예를들어 두개의 AP가 UART로 통신하고 있다면 통신 프로토콜을 … Read more